Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Liste Speichern (https://www.delphipraxis.net/139915-liste-speichern.html)

Schnittcher 8. Sep 2009 11:02


Liste Speichern
 
Hallo,

wie kann ich eine IInterfaceList speichern?

SaveToFile gibt es dort ja nicht.

Gruß,
Schnittcher

Forlan 8. Sep 2009 11:03

Re: Liste Speichern
 
Such hier mal nach Hier im Forum suchenAssignfile, Hier im Forum suchenWrite, und Hier im Forum suchenTextfile....

Oder du benutzt inis.

MfG,

Schnittcher 8. Sep 2009 11:48

Re: Liste Speichern
 
Hallo,

ich habe es jetzt so versucht:

Delphi-Quellcode:
procedure TForm1.cmdListSpeichernClick(Sender: TObject);
var
  i: integer;
  pAuto: IAuto;
  myfile: TextFile;
begin
  for i := 0 to AutoList.Count do
  begin
    pAuto := AutoList.Items[x];
  AssignFile(myFile, 'c:\Test.txt');
  WriteLn(myfile, 'Name:', pAuto.ErgebnisName, 'KW:', pAuto.ErgebnisKW, 'PS:',
    pAuto.ErgebnisPS);
  end;
end;
Aber ich bekomme jetzt einen I/O Error 103.

Kann mir da jemand helfen?

Gruß,
Schnittcher

Mithrandir 8. Sep 2009 11:54

Re: Liste Speichern
 
Zitat:

103
Datei nicht geöffnet
Wird von CloseFile, Read, Write, Seek Eof, FilePos FileSize, Flush, BlockRead oder
BlockWrite gemeldet, wenn die Datei nicht geöffnet ist.
Delphi-Quellcode:
procedure TForm1.cmdListSpeichernClick(Sender: TObject);
var
  i: integer;
  pAuto: IAuto;
  myfile: TextFile;
begin
  AssignFile(myFile, 'c:\Test.txt');
  Rewrite(myFile);
  for i := 0 to AutoList.Count do
  begin
    pAuto := AutoList.Items[x];
    WriteLn(myfile, 'Name:', pAuto.ErgebnisName, 'KW:', pAuto.ErgebnisKW, 'PS:',
      pAuto.ErgebnisPS);
  end;
  CloseFile(myFile);
end;
Probier mal den Code oben. Ist nicht getestet. Ich habe bei dir Delphi-Referenz durchsuchenReWrite und Delphi-Referenz durchsuchenCloseFile vermisst. Außerdem sollte es eigentlich reichen, der Variablen einmal am Schleifenanfang eine Datei zuzuweisen.

Schnittcher 8. Sep 2009 11:57

Re: Liste Speichern
 
Hallo

jetzt bekomme ich I/O error 32. (Den Error hatte ich eben auch schon als ich "Rewrite(myFile);" mal drin hatte.

Gruß,
Schnittcher

Mithrandir 8. Sep 2009 11:59

Re: Liste Speichern
 
Dann vermute ich mal, dass du die Datei irgendwo im Code nochmal benutzt, oder?

Schnittcher 8. Sep 2009 11:59

Re: Liste Speichern
 
Hallo,

nein die Datei benutze ich nur an dieser Stelle.

Gruß,
Schnittcher

Klaus01 8. Sep 2009 12:02

Re: Liste Speichern
 
Zitat:

Zitat von MSDN
ERROR_SHARING_VIOLATION 32 (0x20)
The process cannot access the file because it is being used by another process.

Zu jedem Reset oder auch Rewrite gehöhrt ein CloseFile.
Ansonsten bleibt das FileHandle geöffnet.

Grüße
Klaus

Schnittcher 8. Sep 2009 12:06

Re: Liste Speichern
 
Hallo,

es hat gerade 1 mal geklappt und jetzt geht es nicht mehr, jetzt kommt wieder der I/O error 32.


Zitat:

Zitat von Klaus01
Zitat:

Zitat von MSDN
ERROR_SHARING_VIOLATION 32 (0x20)
The process cannot access the file because it is being used by another process.

Zu jedem Reset oder auch Rewrite gehöhrt ein CloseFile.
Ansonsten bleibt das FileHandle geöffnet.

Grüße
Klaus

Was meinst du kann ich tun?

Gruß,
Schnittcher

Mithrandir 8. Sep 2009 12:11

Re: Liste Speichern
 
Zitat:

Zitat von Schnittcher
Was meinst du kann ich tun?

Einen Breakpoint setzen und durch den Code steppen, um zu sehen, was nicht passt.

P.S.:

Zitat:

for i := 0 to AutoList.Count do
begin
pAuto := AutoList.Items[x];
Da stimmt aber was nicht, oder? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr.
Seite 1 von 2  1 2      

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