AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ini-Datei mit Ftp holen und dann verarbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

Ini-Datei mit Ftp holen und dann verarbeiten

Ein Thema von kuba · begonnen am 25. Mär 2008 · letzter Beitrag vom 25. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#1

Ini-Datei mit Ftp holen und dann verarbeiten

  Alt 25. Mär 2008, 16:40
Hallo,

ich möchte mit meinem Programm eine ini-Datei per FTP holen und dann weiterverarbeiten, also die Werte in meinem Programm in einem neuen Fenster anzeigen und ändern. Die Datei ist jedoch nach der Übertragung gesperrt, wenn ich das Programm nach der FTP-Übertragung neu starte funktioniert es.

Wo liegt das Problem, wie kann ich die Ini-Datei in meinem Programm weiterverarbeiten ?

Auszug aus dem Code:

Delphi-Quellcode:
procedure TForm14.Button6Click(Sender: TObject);
begin
   Deletefile(meine.ini);
   ListBox1.Clear;
   ListBox1.AddItem('Please wait ...',nil);
   idftp1.Username := Edit1.Text;
   idftp1.Password := Edit2.Text;
   idftp1.Host := Edit4.Text;
   idftp1.Port := StrToInt(Edit3.Text);
   idFtp1.Passive := True;
   try
        idFtp1.Connect;
        idFtp1.Get(meine.ini,ExtractFileName(meine.ini));
        ListBox1.AddItem('Transfer OK !!!',nil);
        idFtp1.Quit;
    except
        ListBox1.Clear;
        ListBox1.AddItem('Error downloading from Remote Server !!!',nil);
    end;
    idFtp1.Disconnect;
    //idFtp1.Free;
end;

procedure TForm22.FormCreate(Sender: TObject);
var
    Value :string;
    Ini :TIniFile;
begin
      ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'meine.ini');
      try
      Value := Ini.ReadString('IExplorer','ProxyEnable', Value);
      if Value = '1then SetCheckedState(CheckBox1, NOT CheckBox1.Checked);
      Value := Ini.ReadString('IExplorer','ProxyServer', Value);
      LabeledEdit1.Text := Value;
      Value := Ini.ReadString('IExplorer','Start Page', Value);
      LabeledEdit2.Text := Value;
      Value := Ini.ReadString('IExplorer','ProxyOverride', Value);
      LabeledEdit3.Text:=Value;
      finally
        Ini.Free;
      end;
end;

Wer kennt sich aus ? Was läuft falsch ??

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Ini-Datei mit Ftp holen und dann verarbeiten

  Alt 25. Mär 2008, 17:56
Was heißt, sie ist gesperrt? Gibts ne Zugriffsverletzung?

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Ini-Datei mit Ftp holen und dann verarbeiten

  Alt 25. Mär 2008, 18:15
nee, aber die übertragenen Werte werden in meinem Formular nicht angezeigt.
Es funktioniert wenn ich die Anwendung nach der FTP-Übertragung beende und neu starte, dann sind alle Werte in meinem Formular vorhanden.

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Ini-Datei mit Ftp holen und dann verarbeiten

  Alt 25. Mär 2008, 18:25
Hallo,

meiner Meinung nach kann diese Zeile gar nicht erfolgreich kompiliert werden (genauso bei "DeleteFile"):

idFtp1.Get(meine.ini,ExtractFileName(meine.ini)); Der erste Parameter müsste der Dateiname/Pfad auf dem FTP-Server sein und dieser ist vom Typ String. Also wenn, dann so:

idFtp1.Get('meine.ini', 'meine.ini'); Ich würde lokal übrigens nur absolute Pfade verwenden, da sich relative Pfade aufs Arbeitsverzeichnis beziehen, das nicht unbedingt identisch mit dem Programmverzeichnis sein muss.

Grüße
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Ini-Datei mit Ftp holen und dann verarbeiten

  Alt 25. Mär 2008, 18:27
Wird die Ini bei Dir denn "nur" eingelesen
wenn die Application gestartet wurde?
Dein Codeauszug läßt darauf schließen.

Wenn Du die Datei nicht neu einließt nachdem
sie per ftp geladen wurde, kann Deine Application auch
keine neuen Werte anzeigen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Ini-Datei mit Ftp holen und dann verarbeiten

  Alt 25. Mär 2008, 19:10
Zitat von Matze:
Hallo,

meiner Meinung nach kann diese Zeile gar nicht erfolgreich kompiliert werden (genauso bei "DeleteFile"):

idFtp1.Get(meine.ini,ExtractFileName(meine.ini)); Der erste Parameter müsste der Dateiname/Pfad auf dem FTP-Server sein und dieser ist vom Typ String. Also wenn, dann so:

idFtp1.Get('meine.ini', 'meine.ini'); Ich würde lokal übrigens nur absolute Pfade verwenden, da sich relative Pfade aufs Arbeitsverzeichnis beziehen, das nicht unbedingt identisch mit dem Programmverzeichnis sein muss.

Grüße
sorry, habe dort eine Edit.Text Box im Code.

Delphi-Quellcode:
  Deletefile(ExtractFileName(Edit7.Text));

  idFtp1.Get(Edit8.Text,ExtractFileName(Edit7.Text));
@Klaus

wie kann ich die Datei neu einlesen ??

Delphi-Quellcode:

procedure TForm22.FormCreate(Sender: TObject);
var
    Value :string;
    Ini :TIniFile;
begin
      ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'meine.ini');
      try
      Value := Ini.ReadString('IExplorer','Start Page', Value);
      LabeledEdit2.Text := Value;
      finally
        Ini.Free;
      end;
end;
ich denke ich öffne die Inidatei einfach beim FormCreate, oder wie ?

sorry Anfänger

Ich habe den Eindruck, dass die Datei nach der FTP-Übertragung gesperrt ist ...

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von pilic
pilic

Registriert seit: 10. Aug 2006
Ort: Aschbach
131 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Ini-Datei mit Ftp holen und dann verarbeiten

  Alt 25. Mär 2008, 19:24
Du könntest dir eine Prozedur schreiben und sie immer aufrufen, wenn du sie brauchst.

Delphi-Quellcode:
procedure MacheWasMitDerIni(Pfad, Value: string);
var
    Ini :TIniFile;
begin
  ini:=TIniFile.create(Pfad);
  try
    LabeledEdit2.Text := Ini.ReadString('IExplorer','Start Page', Value);
  finally
    Ini.Free;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MacheWasMitDerIni('C:\...\meine.ini', 'Unbekannter Wert');
end;
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Ini-Datei mit Ftp holen und dann verarbeiten

  Alt 25. Mär 2008, 19:27
Wird Form22 den nach dem Download überhaupt erstellt? Oder besteht sie schon vorher? Denn dann wird das OnCreate ja nicht mehr aufgerufen. Desweiteren: Bist du dir sicher, dass es in der Ini die Section 'IExplorer' und den Key 'Start Page' gibt? Gib doch als 3.Parameter bei Ini.ReadString mal 'Error' an, dann wirst dus ja sehen. Wurde die Datei, wenn du versuchst, sie zu öffnen, überhaupt schon erstellt? Prüf das doch mal mit if FileExists(FileName).

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Ini-Datei mit Ftp holen und dann verarbeiten

  Alt 25. Mär 2008, 19:43
Aber beim FormCreate setze ich doch meine Anfangswerte in die Felder, das komische ist dass es funktioniert wenn ich das Programm beende und neu starte. Ich vermute dass FTP nicht richtig beendet wird und beim FormCreate die Werte aus der vorher vorhandenen Ini verwendet werden.

Also nochmal wenn ich das Programm ohne ini starte zeigt er garnix an, hole ich eine Ini per FTP dann werden die werte aus der alten Ini angezeigt.

Es scheint, dass die Ini-Datei beim Programmstart initialisiert wird, überschreibe ich die Ini-Datei indem ich per FTP eine neue hole dann muss ich das Programm neu starten sonst zeigt er mir nicht die Werte der neuen Datei an.

@Robert
Form22 wird erst nach dem Download aufgerufen, was heisst erstellt ? Habe einfach dem Projekt ein Formular hinzugefügt.

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Ini-Datei mit Ftp holen und dann verarbeiten

  Alt 25. Mär 2008, 19:52
Aber auch, wenn du Form22 erst später aufrufst, wird es schon beim Programmstart erstellt (auch wenn es dann noch unsichtbar ist). Somit wird nur beim Programmstart das OnCreate ausgeführt. Pack den Code mal in das OnShow-Ereignis von Form22, denn das wird immer aufgerufen, wenn du die Form aufrufst (Form22.Show).

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz