AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Problem: Procedure zum speichern eines grids auf FTP server
Thema durchsuchen
Ansicht
Themen-Optionen

Problem: Procedure zum speichern eines grids auf FTP server

Ein Thema von 5etH · begonnen am 15. Mai 2008 · letzter Beitrag vom 16. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von 5etH
5etH

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

Problem: Procedure zum speichern eines grids auf FTP server

  Alt 15. Mai 2008, 16:44
Hallo Zusammen

mein Programmfragment speichert StringGrids in eine CSV datei auf einem FTP-Server nur leider gibt er mir einen Fehler aus obwohl es in einer anderen unit ohne probleme läuft hier einmal die beiden teile und anschließend die Fehlermeldung

Procedure
Delphi-Quellcode:
Procedure Save(Grid : TStringGrid; GridMem : TMemoryStream; FileName : String; CSV : TStringList);
Var I : Integer;
Begin
  // Vorbereitung zum speichern der Datenbanken
  GridMem := TMemoryStream.Create;
  CSV := TStringList.Create;
    //Speichern der Grids in Streams
    For I:=0 To Grid.RowCount -1 Do
      Begin
        Grid.Rows[i].Delimiter:=';';
        CSV.Add(StringReplace(Grid.Rows[i].DelimitedText,'',';',[rfReplaceAll]));
      End;
  // Speichern der Streams als Datei auf einem FTP Server
  CSV.SaveToStream(GridMem);
  Datenmodul1.IdFTP1.Put(GridMem,FileName);
  CSV.Free;
  GridMem.Free;
End;
Aufruf
Save(KNDT.StringGrid1, Grid1,'KundenStamm.CSV',CSV1); // EDIT !!! Im aufruf tritt der fehler auf Fehlermeldung(en):
[DCC Fehler] Regin.pas(210): E2066 Operator oder Semikolon fehlt
[DCC Fehler] Regin.pas(210): E2014 Anweisung erforderlich, aber Ausdruck vom Typ 'TMemoryStream' gefunden

Kann mir vill jemand sagen woran das liegt ?

schonmal vielen dank
5etH

[edit=Admin]Beitrag neu in den Cache eingetragen. Mfg, Daniel[/edit]
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit eigener Procedure

  Alt 15. Mai 2008, 16:53
Was in Rundenklammern hinter dem Unitnamen steht, sind die Zeilen, in der der Fehler aufgetreten ist.

Und der Threadtitel istauch nicht sehr aussagekräftig.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

Re: Problem mit eigener Procedure

  Alt 15. Mai 2008, 17:11
es wär mal ganz interessant, wenn du noch die Zeilen markierst, bei denen der Fehler auftritt
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Mikender
(Gast)

n/a Beiträge
 
#4

Re: Problem mit eigener Procedure

  Alt 15. Mai 2008, 17:13
Mal ne Frage (vielleicht denke ich auch gerade total falsch) aber warum übergibst du der procedure ne StringList die du zuerst createst und dann mit Free "zerstörst" wäre es nicht sinnvoller die nicht als Parameter sondern einfach als var zu vereinbaren

Ach ja welche Zeile ist denn 210
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

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

Re: Problem mit eigener Procedure

  Alt 16. Mai 2008, 08:24
keiner mehr eine idee ?
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Problem mit eigener Procedure

  Alt 16. Mai 2008, 08:45
Der Compiler motzt die Zeile 210 an.

Falls diese Zeile gemeint ist:
Datenmodul1.IdFTP1.Put(GridMem,FileName);
dann legt es vermutlich daran, dass das Datenmodul1 nicht bekannt ist.

P.S.
Datenmodul1 und IdFTP1 sind keine tollen Namen für Komponenten.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#7

Re: Problem mit eigener Procedure

  Alt 16. Mai 2008, 08:52
Zitat:
Aufruf

Save(KNDT.StringGrid1, Grid1,'KundenStamm.CSV',CSV1); // EDIT !!! Im aufruf tritt der fehler auf
Schau dir die Codezeile vor dieser genauer an.
[EDIT]
Dort fehlt mit an Wahrscheinlichkeit grenzender Sicherheit das Semikolon.


Gruß aus München
[/EDIT]
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
Klaus01

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

Re: Problem mit eigener Procedure

  Alt 16. Mai 2008, 08:55
Ich würde die Prozedur so umbauen.
In der Parameterliste all die Sachen
die man von aussen in der Prozedure benötigt.
Wie das StringGrid, die FTP Session und den Dateinamen.

Der MemoryStream und die StringList werden nur
intern in der Prozedur benutzt und es reicht auch dann
sie nur intern als Variablen zu führen.

Delphi-Quellcode:
Procedure Save(Grid:TStringGrid; ftpSession:TidFTP; FileName:String);
var
  I : Integer;
  GridMem : TMemoryStream;
  CSV : TStringList;
Begin
  // Vorbereitung zum speichern der Datenbanken
  GridMem := TMemoryStream.Create;
  CSV := TStringList.Create;
  //Speichern der Grids in Streams
  For I:=0 To Grid.RowCount -1 Do
    Begin
      Grid.Rows[i].Delimiter:=';';
      CSV.Add(StringReplace(Grid.Rows[i].DelimitedText,'',';',[rfReplaceAll]));
    End;
  // Speichern der Streams als Datei auf einem FTP Server
  CSV.SaveToStream(GridMem);
 
  ftpSession.Put(GridMem,FileName);
 
  CSV.Free;
  GridMem.Free;
End;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Problem mit eigener Procedure

  Alt 16. Mai 2008, 09:05
Zitat von 5etH:
keiner mehr eine idee ?
Du solltest eventuell mal unsere Beiträge lesen. Wir haben dich danach gefragt, welche Zeile Zeile 210 ist und ich habe dich gebeten den Threadtitel anzupassen!
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Problem mit eigener Procedure

  Alt 16. Mai 2008, 09:08
hi,

Zitat:
[DCC Fehler] Regin.pas(210): E2066 Operator oder Semikolon fehlt
da würde ich mal ganz stark darauf tippen, dass in der Anweisung vor Zeile 210 das letzte Semikolon vergessen wurde


Gruß
angos
Ansgar
  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 12:32 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