Benutzer-Werkzeuge

Webseiten-Werkzeuge


k19:k19.1:k19.1.3:k19.1.3.3:start

19.1.3.3 Einsatz Profil-Manager

Der Profil-Manager ist ein eigenständiges Programm, das nur für die Verwaltung von Profilen in einer Konfigurationsdatei einer Anwendung eingesetzt wird. Die Anwendung liest die Daten eines im Profil-Manager ausgewählten Profils oder des zuletzt benutzten Profils ein, wertet diese aus und weist sie intern Variablen oder Komponenten-Eigenschaften als Wert zu. Damit greift nur ein Programm auf die Konfigurationsdatei mit den Profilen zu. Der Profil-Manager muss immer im Kontext mit der Anwendung gesehen werden, die ihn nutzt. Einen Manager für alle Programme wird es deshalb nicht geben. Die Anwendung muss mit Hilfe der Klassen Settings oder SettingsP (für Gambas 2) in der Lage sein, beim ersten Start den Profil-Manager aufzurufen und ein erstes Profil anzulegen oder die Daten des zuletzt genutzten Profils auszulesen. Deswegen können Sie mit der Klasse SettingsP/Settings so arbeiten, wie es Ihnen in den Beispielen 1 und 2 vorgestellt wurde.

Im folgenden Abschnitt wird Ihnen ein FTP-Client präsentiert, der den beschriebenen Profil-Manager nutzt. Der FTP-Client ist geeignet, Ihnen den Einsatz des Profil-Managers zu veranschaulichen! Bitte beachten Sie, dass der FTP-Client nur das Einlesen des Remote-Verzeichnisses unter dem ausgewählten Profil von 2 öffentlich zugänglichen FTP-Servern demonstriert:

FTP-Client

Abbildung 19.1.3.3.1: FTP-Client mit Profil-Manager

Für Ihr Testprogramm können Sie selbstverständlich auch Ihre Daten in ein neues Profil eintragen, wenn Sie über ein eigenes FTP-Konto verfügen.

Der Quelltext wird an dieser Stelle nur für die Prozeduren angegeben, welche das Zusammenspiel von Profil-Manager und FTP-Client als Anwendung verdeutlichen. Die komplette Implementierung finden Sie im Projekt FTPC-Profile für Gambas 2. Die Änderungen für Gambas 3 sind gering und bereits vorgestellt worden. Sie können für die Anwendung auch weitere Daten – hier die Angaben zum AutoConnect – in die Konfigurationsdatei schreiben und auslesen, wenn Sie das für notwendig halten, wie ein Blick in die verwendete Konfigurationsdatei und ein zweiter in den Quelltext-Ausschnitt zeigen:

# Profile für einen FTP-Client
[AutoConnect]
AutoConnect=-1

[LastProfil]
LastProfilName="FH-HANNOVER"

[P_FH-HANNOVER]
FTPServerName="ftp.fh-hannover.de"
FTPUserName="anonymous"
FTPUserPassword="wer@ist.da"
FTPInitialDirRemote="pub/dos/tcpip"

[P_UNI-ERLANGEN]
FTPServerName="ftp.uni-erlangen.de"
FTPUserName="anonymous"
FTPUserPassword="wer@ist.da"
FTPInitialDirRemote="pub"

Im folgenden Abschnitt sehen Sie den Quelltext-Ausschnitt der Anwendung FTPC-Profile:

' Gambas class file
 
PUBLIC ftpSettings AS SettingsP ' ---> Gambas 2 
...
 
PUBLIC SUB Form_Open() 
  FMain.Center
  FMain.Border = 1
  btnFileUpLoad.Enabled = FALSE
  btnFileDownLoad.Enabled = FALSE
  bFinishedFlag = FALSE
  oFTPClient.Timeout = 5
' ---> GB2; GB3 ---> ... AS NEW Settings 
  ftpSettings = NEW SettingsP(Application.Path &/ "Profils/profils.conf", "Profile für einen FTP-Client")
 
  IF ftpSettings["LastProfil/LastProfilName"] = NULL THEN 
     Message.Info("Es existiert kein Profil für das Client-Programm!")
     FProfilManager.ShowModal
  ELSE 
     GetProfilValues(ftpSettings["LastProfil/LastProfilName"])
     FileChooser1.Dir = FileChooser1.Dir &/ InitialDirLocal
     cboxAutoConnect.Value = ftpSettings["AutoConnect/AutoConnect", FALSE]
     IF cboxAutoConnect.Value = TRUE THEN 
        ConnectToFTPServer()
     ENDIF   
  ENDIF ' = NULL?
END ' Form_Open() 
 
PUBLIC SUB GetProfilValues(sProfilName AS String)  
  sProfilName = "P_" & sProfilName
  FTPServerName = ftpSettings[sProfilName & "/FTPServerName"]
  FTPUserName = ftpSettings[sProfilName & "/FTPUserName"]
  FTPUserPassword = ftpSettings[sProfilName & "/FTPUserPassword"]
  InitialDirLocal = ftpSettings[sProfilName & "/FTPInitialDirLocal"]
  InitialDirRemote = ftpSettings[sProfilName & "/FTPInitialDirRemote"]  
  FMain.Text = "FTP-Client mit Profil: " & Mid(sProfilName, 3)
  txtRemoteDirectory.Text = FTPServerName &/ InitialDirRemote
END ' GetProfilValues(..)
 
...
 
PUBLIC SUB btnProfilManagerShow_Click() 
  FProfilManager.ShowModal
  ftpSettings.Reload
  IF ftpSettings["LastProfil/LastProfilName"] = NULL THEN 
     FProfilManager.ShowModal
  ELSE 
     GetProfilValues(ftpSettings["LastProfil/LastProfilName"])
     FileChooser1.Dir = User.Home &/ InitialDirLocal
     txtRemoteDirectory.Text = FTPServerName &/ InitialDirRemote
     txaRemote.Clear
  ENDIF ' = NULL?
END ' ProfilManagerShow
 
PUBLIC SUB Form_Close() 
   ftpSettings["AutoConnect/AutoConnect"] = cboxAutoConnect.Value 
END ' Form_Close()
 
PUBLIC SUB btnClose_Click()
  IF oFTPClient.Status > 0 THEN oFTPClient.Close
  FMain.Close
END ' btnClose_Click()

So lange Sie das Programm FTF-Client mit Profilmanager (Projekt FTPC-Profile) in der IDE testen, sehen Sie in der Konsole das Verbindungsprotokoll zwischen FTP-Server und FTP-Client, das interessante Details zeigt. Es kann dann gut interpretiert werden, wenn Sie die RFC 959 zum File Transfer Protocol (FTP) – veröffentlicht auf der Website http://www.faqs.org/rfcs/rfc959.html – gelesen haben.

19.1.3.3 Download

k19/k19.1/k19.1.3/k19.1.3.3/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge