Listenfeld aktualisieren



  • Ich hab ein tool welches von einem speziellen rechner auf nen anderen zugreift! An dem kann ich dann dateien downloaden und uploaden. Das prog hat eine listbox welches mir die Datein lokal an dem rechner anzeigt die ich dann zum anderen rechner uppen kann! Nur hab ich das problem, dass es mir die listbox net immer die datein anzeigt! Wenn ich sie löschen tu oder wenn eine neue dazukommt!

    Gibts da en befehl zum aktualisieren?



  • Du erstellst eine Funktion, die das Listenfeld füllt. Nach dem Löschen einer Datei rufst du diese Funktion einfach auf.

    Gruß, Manuel. 🙂



  • Die listbox wird im normal fall immer automatisch gefüllt je nach dem ob sich dateien lokal im ordner befinden müssen die auch in der listbox angezeigt werden! Nur manchmal wird was angezeigt manchaml auch nix..und ich weiss net warum....updateData steht auch überall (denk ich)



  • Dann brauchen wir wohl den Code. 😉



  • // Upload.cpp: Implementierungsdatei
    //
    
    #include "stdafx.h"
    #include "ASC.h"
    #include "Upload.h"
    #include "Dateityp.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    
    /////////////////////////////////////////////////////////////////////////////
    // Dialogfeld CUpload 
    
    CUpload::CUpload(CWnd* pParent /*=NULL*/)
    	: CDialog(CUpload::IDD, pParent)
    {
    	//{{AFX_DATA_INIT(CUpload)
    		// HINWEIS: Der Klassen-Assistent fügt hier Elementinitialisierung ein
    	//}}AFX_DATA_INIT
    }
    
    void CUpload::DoDataExchange(CDataExchange* pDX)
    {
    	UpdateData();
    	CDialog::DoDataExchange(pDX);
    	//{{AFX_DATA_MAP(CUpload)
    	DDX_Control(pDX, IDC_Dateiliste_lokal, m_list_lokal);
    	//}}AFX_DATA_MAP
    }
    
    BEGIN_MESSAGE_MAP(CUpload, CDialog)
    	//{{AFX_MSG_MAP(CUpload)
    	ON_BN_CLICKED(ID_Upload, OnUpload)
    	//}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    
    /////////////////////////////////////////////////////////////////////////////
    // Behandlungsroutinen für Nachrichten CUpload 
    
    void CUpload::OnUpload() 
    {
    	UpdateData();
    	int n_anzahl, i;
    	n_anzahl = m_list_lokal.GetSelCount();
    
    	CString str_Dateiname[100];
    	CArray<int,int> aryListBoxSel; 
    	aryListBoxSel.SetSize(n_anzahl);
    	if ((n_anzahl>0)&&(n_anzahl<=100))
    	{
    		UpdateData();
    		m_list_lokal.GetSelItems(n_anzahl, aryListBoxSel.GetData());
    
    		for( i = 0; i < aryListBoxSel.GetSize(); i++) 
    		{ 
    		   //holt sich an der gegebenen Stelle den String und schriebt ihn in str 
    		   m_list_lokal.GetText(aryListBoxSel.GetAt(i), str_Dateiname[i]); 	   
    		}
    	}
    	if (!m_Bearbeiten.pConnection)
    	{
    		MessageBox("Es wurde keine FTP-Verbindung aufgebaut!",
    			"Fehler", MB_ICONWARNING);
    	}
    	else if (str_Dateiname[0] == "") 
    	{
    		MessageBox("Bitte wählen Sie eine oder mehrere Dateien!",
    			"Fehler", MB_ICONWARNING);
    	}
    	else
    	{
    		i = 0;
    		while (str_Dateiname[i]!="")
    		{
    			CString str_Dateiname_lokal;
    			int int_markiert = 0;
    
    			switch (m_Serverauswahl)
    			{
    			case 0:	// IDC_Alcatel
    				{
    					m_Bearbeiten.Upload(m_Serverauswahl, str_Dateiname[i]);
    					if(m_Bearbeiten.int_Transfer = 1)
    					{
    						MessageBox(m_Bearbeiten.m_str_message,NULL,MB_OK);
    					}
    					else
    					{
    						MessageBox(m_Bearbeiten.m_str_Fehler,"Fehler",MB_ICONWARNING);
    					}
    					break;
    				}
    			case 1:	// IDC_DTAG
    				{
    					int int_Dateityp;
    					CString str_Pfad;
    
    					str_Dateiname_lokal = str_Dateiname[i];
    
    					// Dateityp ermitteln
    					str_Dateiname_lokal = str_Dateiname_lokal.Left(6);
    
    					// Prüfen nach S12-MOD
    					if ((str_Dateiname_lokal=="LUABAA") | (str_Dateiname_lokal=="LUABEL") | 
    						(str_Dateiname_lokal=="LWYEAA") | (str_Dateiname_lokal=="LWYEEL")) 
    					{
    						int_Dateityp=0;
    					}
    					// Prüfen nach S12-SOKO
    					else if ((str_Dateiname_lokal=="Y5AT1S") | (str_Dateiname_lokal=="Y5AT5G"))
    					{
    						int_Dateityp=1;
    					}
    					else
    					{
    						// Dialog öffnen und manuelle Auswahl
    						CDateityp Typ;
    						Datei_auswahl:
    						int nResponse = Typ.DoModal();
    						if ((nResponse == IDOK) && (Typ.m_int_Dateityp!= -1))
    						{
    							int_Dateityp = Typ.m_int_Dateityp;
    							// Inhalt von m_Dateityp 
    							// S12-MOD		0
    							// S12-SOKO		1
    							// MML-Daten	2
    							// QuickFix		3
    						}
    						else if ((nResponse == IDCANCEL) || (Typ.m_int_Dateityp== -1))							
    						{
    							int int_MessageBox = MessageBox("Bitte wählen Sie den Dateityp aus!","Fehler",MB_YESNO);
    							if (int_MessageBox == 6)
    							{
    								goto Datei_auswahl;
    							}
    							else 
    							{
    							}
    							goto End;
    						}
    					}
    					switch (int_Dateityp)
    					{
    					case 0:
    						{
    							str_Pfad = "S12-Mod";
    
    							break;
    						}
    					case 1:
    						{
    							str_Pfad = "S12-Sokos";
    							break;
    						}
    					case 2:
    						{
    							str_Pfad = "MML-Daten";
    							break;
    						}
    					case 3:
    						{
    							str_Pfad = "Quick-Fix";
    							break;
    						}
    					}
    					m_Bearbeiten.pConnection->SetCurrentDirectory(str_Pfad);
    					m_Bearbeiten.Upload(m_Serverauswahl, str_Dateiname[i]);
    					if(m_Bearbeiten.int_Transfer = 1)
    					{
    						MessageBox(m_Bearbeiten.m_str_message,NULL,MB_OK);
    					}
    					else
    					{
    						MessageBox(m_Bearbeiten.m_str_Fehler,"Fehler",MB_ICONWARNING);
    					}
    					break;
    				}
    			case -1:
    				{
    					MessageBox("Bitte wählen Sie eine Serverliste",NULL,MB_OK);
    				}
    			}
    			End:
    			i++;
    		}
    
    	}
    	CDialog::OnOK();
    }
    
    void CUpload::OnCancel() 
    {
    	m_Bearbeiten.Auswahl();
    	CDialog::OnCancel();	
    }
    
    BOOL CUpload::OnInitDialog() 
    {
    	CDialog::OnInitDialog();
    	CBefehle Bearbeiten;
    	CString str_LokalerPfad;
    
    	str_LokalerPfad = Bearbeiten.IBM_Datei_durchsuchen("Ausgabe_Pfad") + "*.*";
    	m_list_lokal.Dir(0x0000, str_LokalerPfad);
    	Connect();
    
    	return TRUE;  // return TRUE unless you set the focus to a control
    	              // EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben
    }
    
    BOOL CUpload::Connect()
    {
    	UpdateData();
    	CString str_curDirectory;
    	CString str_Filename;
    	BOOL Connect;
    
    	Connect = m_Bearbeiten.Connect(m_str_GatewayIP, m_str_Username, m_str_Passwort, m_Serverauswahl);
    	if (Connect == TRUE)
    	{
    		MessageBox("Connect zum Gateway war erfolgreich!",NULL,MB_OK);
    	}
    	else
    	{
    		MessageBox("Es konnte keine FTP-Verbindung aufgebaut werden.","Fehler",MB_ICONWARNING);
    		CDialog::OnCancel();
    	}
    	return Connect;
    }
    
    void CUpload::SetUserDetails(CString str_Username, CString str_Passwort, CString str_GatewayIP, int nServerauswahl)
    {
    	m_str_Username = str_Username;
    	m_str_Passwort = str_Passwort;
    	m_str_GatewayIP = str_GatewayIP;
    	m_Serverauswahl = nServerauswahl;
    }
    

    so des müpsste der code sein für diesen bereich


Anmelden zum Antworten