![]() |
Save dialog
Hallo zusammen, hab mal wieder ne Frage, lol.
Und zwar würde ich gerne fortlaufende Befehle aus der Variablen Liste[i] in einer textdatei speicher, aber das einzige was mein programm macht ist den opendialog zu saven, aber das will ichz nicht, er soll die neuen Meßwerte der variablen speichern. Habt Ihr ne Idee. Hänge mal einen Ausschnitt aus meinem Programm an.
Delphi-Quellcode:
begin
AssignFile(FromF, liste[i]); Reset(FromF, 1); { Datensatzgröße = 1 } if SaveDialog1.Execute then { Dialog zum Speichern anzeigen } begin AssignFile(ToF, SaveDialog1.FileName); { Ausgabedatei öffnen } Rewrite(ToF, 1); { Datensatzgröße = 1 } Canvas.TextOut(10, 10, 'Kopieren von ' + IntToStr(FileSize(FromF)) + ' Byte...'); repeat BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); until (NumRead = 0) or (NumWritten <> NumRead); CloseFile(FromF); CloseFile(ToF); end; end; |
Re: Save dialog
Hier stand Mist.
|
Re: Save dialog
Das ist nicht das Problem, diese Funktion arbeitet auch mit meinem Programm.
Das Problem ist, das die gespeicherte Datei eine exakte Kopie der aufgerufenen Datei im open dialog entpricht. Dabei sollte diese Datei nicht kopiert werden, sondern fortlaufende variablen werte der liste[i] gespeichert werden. In der Zeile Reset wird mir immer ein Fehler angezeigt. |
Re: Save dialog
Liste[i] sind variable Werte? und AssignFile(FromF,Liste[i]) soll ne Datei öffnen?
Ich versteh nicht ganz, was Du machen möchtest, aber AssignFile erwartet als 2. Parameter den Dateinamen, d.h. Liste[i] muss einem Dateinamen entsprechen.. möchtest Du aber Liste[i] in eine Datei speichern, muss Du nur ToF erzeugen und dort Liste[i] reinschreiben... :) Gruß Stephan :dance: |
Re: Save dialog
Hi steve, habe das mit dem tof nicht verstanden,
was muß ich wo ändern? Hab mal das Programm etwas abgeändert, aber wo muß ich da jetzt meine laufvariable einfügen, in der ich immer weider neue werte bekomme, und die ich hintereinander in einer datei speichern will.
Delphi-Quellcode:
begin
AssignFile(FromF, OpenDialog1.FileName); Reset(FromF, 1); { Datensatzgröße = 1 } if SaveDialog1.Execute then { Dialog zum Speichern anzeigen } begin AssignFile(ToF, SaveDialog1.FileName); { Ausgabedatei öffnen } Rewrite(ToF, 1); { Datensatzgröße = 1 } Canvas.TextOut(10, 10, 'Kopieren von ' + IntToStr(FileSize(FromF)) + ' Byte...'); repeat BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); until (NumRead = 0) or (NumWritten <> NumRead); CloseFile(FromF); CloseFile(ToF); end; |
Re: Save dialog
Nunja, du brauchst kein FromF, da Du ja nix aus einer anderen Datei lesen willst, sondern lediglich schreiben, wenn ich Dich richtig verstanden hab... und schreiben musste dann statt Buf halt lines[i]. (Und ne Schleife über i) Falls Du nur Lines[i], welches wohl immer vom gleichen Typ ist, schreiben möchtest, würde ich an Deiner Stelle lieber eine
![]() ![]() Gruß Stephan :dance: |
Re: Save dialog
Stimmt, ich will nur schreiben.
Möchet am Anfang des Programmes eine Datei auswählen in der ich speicher, und in dieser fortlaufende strings einlesen und saven. Was ist denn dafür zu ändern? |
Re: Save dialog
Nur Strings schreiben? Dann nimm entweder ne StringList, die kannste mit
![]() Oder nimm ein ![]() ![]() Ganz grob:
Delphi-Quellcode:
Gruß
SL : TStringList;
F : TextFile; ... //1. Möglichkeit: SL.SaveToFile(aFileName); //2. Möglichkeit: AssignFile(F,aFileName); Rewrite(F); .. WriteLn(F,Lines[i]); Closefile(F); Stephan :dance: |
Re: Save dialog
das mit dem writeln funktioniert nicht.
Fehlermeldung, ungültiger Typ. Obwohl es eine Stringvariable ist. |
Re: Save dialog
Sry, aber das muss so gehen!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz