Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Speichern einer Textdatei (https://www.delphipraxis.net/172150-speichern-einer-textdatei.html)

Mojito 15. Dez 2012 17:26

Speichern einer Textdatei
 
Hall liebe Delphi Freunde,

Ich möchte eine typisierte Datei in eine Textdatei konvertieren und dann abspeichern. Leider ist mir das nicht geglückt. Und zwar erhalteich bei tempTypetoText:=entryToStr(NewFIle) die Fhelermeldung: Inkompatible Typen "TAdresse" und "Text". Die Funktion TypedToStr sieht wie folgt aus:

Delphi-Quellcode:
function TypedToStr(entry: TAdresse): string;
NEWFile ist vom Typ file of TAdresse. Hier der ganze Code der Prozedur

Delphi-Quellcode:
procedure ConvertIntoText(fileName: string);
var
  tempText:Text;
  tempTypetoText:string;
begin
  AssignFile(tempText,filename+'.txt');    // Öffnen der zu speichernden Datei
  Rewrite(tempText);
  tempTypetoText:=typedToStr(NewFIle);
  write(tempTypeToText,tempText);
end;

Hat einer eine Rat?

Vielen Dank!

DeddyH 15. Dez 2012 18:07

AW: Speichern einer Textdatei
 
Es wäre wohl sinniger gewesen, den Code von tempTypeToText zu posten.

Mojito 15. Dez 2012 19:09

AW: Speichern einer Textdatei
 
Ups da hatte ich mich verschrieben, es bezog sich auf die TypedToStr.Hier ein Auszug, die weiteren case-Anweisungen sind ähnlich


Delphi-Quellcode:
function TypedToStr(Vtyped: TAdresse): string;
begin
  TypedyToStr := '';
  case Vtyped.addressType of
    House:
      TypedToStr := 'H,' + Vtyped.street + ',' + Vtyped.city + ',' + inttostr(Vtyped.number);

DeddyH 15. Dez 2012 19:25

AW: Speichern einer Textdatei
 
Das sieht eigentlich OK aus, allerdings hast Du beim write in Deinem zuerst geposteten Code wohl die Parameter verwechselt.

Furtbichler 16. Dez 2012 08:42

AW: Speichern einer Textdatei
 
Außerdem würde ich mit Writeln die einzelnen Bestandteile trennen, sowie die Datei noch mit
Delphi-Quellcode:
CloseFile
ordentlich abschließen

p80286 16. Dez 2012 10:43

AW: Speichern einer Textdatei
 
Neben dem fehlenden
Delphi-Quellcode:
closefile
sollte da eigentlich irgendwo eine Schleife existieren, in der die typisierte Datei eingelesen wird. Das
Delphi-Quellcode:
writeln
ist nicht unbedingt notwendig wenn bei der Konvertierung ein x0D0A mitgegeben wird.
Aber die paar Source-Häppchen lassen eigentlich keine vernünftige Aussage zu.
(übrigens würde ich als Ersatzformat für eine typisierte Datei eher XML oder ein ähnliches Format bevorzugen)

Gruß
K-H

Mojito 16. Dez 2012 12:29

AW: Speichern einer Textdatei
 
Wird die typisierte Datei nicht mit:

while not eof(tempFile) do
eingelesen?

Bekomme für das
Delphi-Quellcode:
 write(tempTypeToText,tempText);
immer noch den Fehler:
[DCC Fehler] UTxt.pas(128): E2054 Ungültiger Typ in Write/Writeln-Anweisung

Muss ich Newfile vielleicht auch erstmal mit AssignFile öffnen oder so?

DeddyH 16. Dez 2012 12:31

AW: Speichern einer Textdatei
 
Nö, einfach nur lesen, was andere schreiben oder alternativ in die Hilfe schauen, welche Parameter von welchem Typ da erwartet werden.

Furtbichler 16. Dez 2012 12:50

AW: Speichern einer Textdatei
 
Der gepostete Code kann nicht funktionieren.
Du willst also eine Prozedur schreiben, die eine typisierte in eine Textdatei umwandelt.
So geht das

Code:
Öffne die typisierte Quellatei (A) zum Lesen.
Öffne die (Ziel-)Textdatei (B) zum schreiben. Willst Du anhängen oder überschreiben?
Dann:
Solange A noch nicht am Ende angekommen ist:
  Lies einen Datensatz aus A ein.
  Konvertiere den Datensatz als String und speichere ihn in der Variablen SA.
  Schreibe SA in B bzw. hänge ans Ende an
...

Schließe die Datei A
Schließe die Datei B
So, und nun solltest Du das mit ein wenig Energie und Google selbst hinbekommen können.

Mojito 16. Dez 2012 18:18

AW: Speichern einer Textdatei
 
So, es hat geklappt danke danke.:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 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