AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

.txt von einem ftp server auslesen

Ein Thema von 5etH · begonnen am 3. Apr 2008 · letzter Beitrag vom 4. Apr 2008
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#21

Re: .txt von einem ftp server auslesen

  Alt 4. Apr 2008, 08:30
hallo nochmal ... hab noch eine letzte frage

ich habe jetzt den kundendatensatz ein ein unsichtbares grid gepackt (Stringgrid2) und würde es nun gerne per stream wieder an den server senden, mein problem: wie bekomme ich die datensätze des Grids in den Stream, sodass sie wieder mit , in dem csv getrennt sind.

so weit bin ich schon gekommen:

Delphi-Quellcode:
if (right) then // Right gibt an ob alle felder zur account erstellung ausgefüllt sind
      begin
        for b := 0 to stringgrid1.rowcount - 1 do
          begin
            if (keyganz = stringgrid1.cells[4,i]) and (Stringgrid1.Cells[5,i] = '0') then
            //wenn Key in datenbank und noch nicht benuzt
              begin
                 //Einloggen
                 datenmodul1.idftp1.Username := 'proguser';
                 datenmodul1.idftp1.Password := 'manuel13';
                 datenmodul1.idftp1.Host := '10.15.121.106';
                 datenmodul1.idftp1.Connect;

                 //Lokale Tabellen
                 stringgrid1.Cells[5,i] := '1';
                 Stringgrid2.Cells[1,stringgrid2.rowcount] := edit4.text;
                 Stringgrid2.Cells[2,stringgrid2.rowcount] := edit5.text;
                 Stringgrid2.Cells[2,stringgrid2.rowcount] := keyganz;
                 stringgrid2.RowCount := Stringgrid2.rowcount +1;


                  save := TMemoryStream.create;
                  csv2 := TStringList.create;
                  save.position:=0;

                  for x := 0 to Stringgrid2.rowcount - 1 do
                    begin
                       //Inahlt fehlt <-- wie sieht der schleifen inhalt zum speichern aus
                    end;
                  csv2.savetoStream(save);
                  csv2.free;
                  save.Free;


                 //Auf server Speichern und disconnecten
                 datenmodul1.IdFTP1.ChangeDir('/Kunden/');
                 datenmodul1.IdFTP1.Put(save,ExtractFileName('Kundendatenbank.csv'));
                 datenmodul1.IdFTP1.Disconnect;

              end;
          end;

      end;
Manuel
  Mit Zitat antworten Zitat
Klaus01

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

Re: .txt von einem ftp server auslesen

  Alt 4. Apr 2008, 08:39
Delphi-Quellcode:
var
  csv : TStringList;
begin
  csv := TstringList.create;
  csv.Delimiter:=',';
  for i:=0 to StringGrid1.RowCount -1 do
    begin
      StringGrid1.Rows[i].Delimiter:=',';
      csv.Add(StringGrid1.Rows[i].CommaText)
    end;
  csv.SaveToStream(<Stream>);
  csv.Free;
end;
War aber so ähnlich schon in diesem Thread aufgeführt.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#23

Re: .txt von einem ftp server auslesen

  Alt 4. Apr 2008, 09:29
holla que tall ^^

also erst lief es ... jetzt tritt ein fehler auf (Listenindex überschreitet das Maximum(0)) woran kann das liegen?

hier einmal der code und wo der fehler auftritt

Delphi-Quellcode:
        begin
          datenmodul1.idftp1.Username := 'proguser';
          datenmodul1.idftp1.Password := 'manuel13';
          datenmodul1.idftp1.Host := '10.15.121.106';
          datenmodul1.idftp1.Connect;
          datenmodul1.IdFTP1.ChangeDir('/Kunden/');
          datenmodul1.idftp1.Get('/Kunden/KundenDatenbank.csv', Kundenstream);

         csv := TStringList.create;
         Kundenstream.position:=0;
         csv.loadfromStream(Kundenstream);
         stringGrid1.rowCount := csv.count;

        for i:= 0 to csv.count -1 do
         begin
          StringGrid1.Rows[i].Delimiter:=',';
          StringGrid1.Rows[i].Commatext:=csv[i]; //Hier stürzt er ab !
         end;
        csv.free;
        kundenStream.Free;
        right := true;
Manuel
  Mit Zitat antworten Zitat
Klaus01

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

Re: .txt von einem ftp server auslesen

  Alt 4. Apr 2008, 09:33
Delphi-Quellcode:
    
  Kundenstream.position:=0;
  csv.loadfromStream(Kundenstream);
Vertausche mal diese beiden Zeilen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#25

Re: .txt von einem ftp server auslesen

  Alt 4. Apr 2008, 10:02
ist vertauscht aber selber fehler
Manuel
  Mit Zitat antworten Zitat
Klaus01

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

Re: .txt von einem ftp server auslesen

  Alt 4. Apr 2008, 10:06
Kannst Du Deine Datei mal testweise in ein Memo ausgeben?
Memo1.lines.loadFromFile() und den output hier einstellen.

Testen kann ich das erst heute abend wieder.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#27

Re: .txt von einem ftp server auslesen

  Alt 4. Apr 2008, 10:23
also ich habe den stream der übergeben wird jetzt mal ausgesleen und der ist leer

Memo1.lines.LoadFromStream(kundenstream); aber die datei auf dem server hat den inhalt

KundenNr.,Name,Vorname,Email,Key,Regestriert
1,1,1,1,7453343257-7456326365-5637645445,0
2,2,2,2,7673325253-7272764327-3677447245,0

und er lädt die datei auch vom server wenn ich da in die Log schaue

[Edit] je nach dem wie ich i in der folgenden schleife erhöhe ändert sich der maximal listindex

Delphi-Quellcode:
for i:=0 to csv.count -1 do
        begin
         StringGrid1.Rows[i].Delimiter:=',';
         StringGrid1.Rows[i].Commatext:=csv[i];
        end;
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#28

Re: .txt von einem ftp server auslesen

  Alt 4. Apr 2008, 11:37
hatte das memo1... an der falschen stelle und jetzt lädt er es in das memofeld

inhalt:

KundenNr.,Name,Vorname,Email,Key,Regestriert
1,1,1,1,7453343257-7456326365-5637645445,0
2,2,2,2,7673325253-7272764327-3677447245,0

aber er trägt es nicht in das grid ein... immernoch selber fehler
Manuel
  Mit Zitat antworten Zitat
Klaus01

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

Re: .txt von einem ftp server auslesen

  Alt 4. Apr 2008, 15:48
Hallo Manuel,

ich habe das noch einmal getestet.
Ich bekomme nur den Fehler "Listindex out of Bounds" wenn
ich den Stream, nachdem er geladen wurde, nicht auf den Anfang
(kundenStream.position:=0;) zurückgesetzt habe.

Anbei noch einmal beide Routinen zum down- und upload.

Delphi-Quellcode:
procedure TForm1.downloadButtonClick(Sender: TObject);
var
  kundenStream : TMemoryStream;
  csv : TStringList;
  i: Byte;
begin
  kundenStream := TMemoryStream.Create;
  idftp1.Host:='192.168.189.128';
  idftp1.Username:='....';
  idftp1.Password:='...';

  idftp1.Connect();
  idftp1.Get('kunden.csv',kundenStream);
  idftp1.Disconnect;
  csv := TStringList.create;
  kundenStream.Position:=0;
  csv.loadfromStream(kundenStream);
  stringGrid1.rowCount := csv.count;
  if csv.count > 0 then
    for i:=0 to csv.count -1 do
      begin
        StringGrid1.Rows[i].Delimiter:=',';
        StringGrid1.Rows[i].Commatext:=csv[i];
      end;

  csv.free;
  kundenStream.Free;

end;

procedure TForm1.uploadButtonClick(Sender: TObject);
var
  kundenStream: TMemoryStream;
  csv : TStringList;
  i: Byte;
begin
  kundenStream := TMemoryStream.Create;
  idftp1.Host:='192.168.189.128';
  idftp1.Username:='...';
  idftp1.Password:='...';

  idftp1.Disconnect;
  csv := TStringList.create;

    for i:=0 to StringGrid1.Rowcount -1 do
      begin
        csv.Add(StringGrid1.Rows[i].CommaText);
      end;
  idftp1.Connect();
  csv.SaveToStream(kundenStream);
  idftp1.put(kundenStream,'kunden.csv');

  csv.free;
  kundenStream.Free;
  idftp1.disconnect;

end;
Wenn es bei Dir nicht so geht, dann stimmt in Deinem Code irgendetwas nicht.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 22:09 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