| Autor |
Beitrag |
Herr Bananerama
      
Beiträge: 130
|
Verfasst: Fr 28.12.07 19:31
Hi,
ich wollte grad mal versuchen einen text aus einer memo in eine .txt Datei Speichern. Resultat: es klappt nicht ... auch wenn kein Fehler auftritt.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.SpeichernClick(Sender: TObject); var f : TextFile; i : Integer; begin AssignFile(f, 'c:\Datei.txt'); {$i-} Append(f); {$i+} if IOResult <> 0 then begin ShowMessage('Fehler ...'); Exit end; for i := 1 To Memo1.Lines.Count Do Writeln(f, Memo1.Lines[i]); CloseFile(f) end; |
Danke schonmal im voraus
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 28.12.07 19:38
Warum benutzt du nicht SaveToFile der Memo-Komponente?
_________________ We are, we were and will not be.
|
|
DrRzf
      
Beiträge: 260
Win XP Prof
D7 Enterprise
|
Verfasst: Fr 28.12.07 19:40
beginnen die Lines nicht bei 0 ?
wenn du nur eine zeile text hast wirds in dem fall nix
Delphi-Quelltext 1:
| Writeln(f, Memo1.Lines[i-1]); |
_________________ rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
|
|
Herr Bananerama 
      
Beiträge: 130
|
Verfasst: Fr 28.12.07 19:51
Gausi hat folgendes geschrieben: | | Warum benutzt du nicht SaveToFile der Memo-Komponente? |
weil ich nicht überschreiben sondern anhängen möchte
|
|
Herr Bananerama 
      
Beiträge: 130
|
Verfasst: Fr 28.12.07 19:53
|
|
Bethsoftfan
      
Beiträge: 44
Win XP, Linux OpenSuSE 10.3 mit Compiz Fusion :cool:
Delphi 2007 Prof. Delphi 5
|
Verfasst: Fr 28.12.07 20:08
Hallo,
Vieleicht den Memo.Lines einen String zuweisen, und dann den String in die Datei schreiben
Edit:
wäre dann:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| var s1 : string; ... begin ... s1 := Memo1.Lines; WriteLn(f, s1); ... |
Zuletzt bearbeitet von Bethsoftfan am Fr 28.12.07 20:30, insgesamt 1-mal bearbeitet
|
|
Herr Bananerama 
      
Beiträge: 130
|
Verfasst: Fr 28.12.07 20:21
Bethsoftfan hat folgendes geschrieben: |
var
s1 : Memo1.Lines;
|
Memo1.Lines ist kein Datentyp. Wenn dann müsste man machen s1: String; aber danke  klappt aber auch net
|
|
Bethsoftfan
      
Beiträge: 44
Win XP, Linux OpenSuSE 10.3 mit Compiz Fusion :cool:
Delphi 2007 Prof. Delphi 5
|
Verfasst: Fr 28.12.07 20:29
arrg is mir eben auch aufgefallen, in meinem Code wäre mir das nicht passirt!
naja wollte ich auch korrigieren, aber leider 2min zuspät!
Also so ist richtig!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.SpeichernClick(Sender: TObject); var f : TextFile; i : Integer; s1 : string; begin s1:= Memo1.Lines; AssignFile(f, 'c:\Datei.txt'); {$i-} Append(f); {$i+} if IOResult <> 0 then begin ShowMessage('Fehler ...'); Exit end; for i := 1 To Memo1.Lines.Count Do Writeln(f, s1); CloseFile(f) end; |
so bis dann(war eben schon bei der Initalisierung, was s1 ist und hab es ausversehen in var geschrieben
tja bringt aber nichts! schade!
Also bis dann Bethsoftfan!
haste mal nur mit write + zeilenumbruch(entspricht writeLn) probiert?
|
|
zuma
      
Beiträge: 660
Erhaltene Danke: 21
Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
|
Verfasst: Fr 28.12.07 20:38
muss das nicht
s1 := memo1.lines.TEXT
heissen ??
_________________ Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
|
|
Herr Bananerama 
      
Beiträge: 130
|
Verfasst: Fr 28.12.07 20:49
|
|
Bethsoftfan
      
Beiträge: 44
Win XP, Linux OpenSuSE 10.3 mit Compiz Fusion :cool:
Delphi 2007 Prof. Delphi 5
|
Verfasst: Fr 28.12.07 21:28
Versuche mal nur aus Testzwecken, die Datei in .ini umzubenennen!
vieleicht geht es dann?
Idee:
dann bräuchte man ja für jede Zeile 1 String. Lösung : Array!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.SpeichernClick(Sender: TObject); var f : TextFile; i : Integer; s1 : Array [1..300] of string; begin AssignFile(f, 'c:\Datei.txt'); {$i-} Append(f); {$i+} if IOResult <> 0 then begin ShowMessage('Fehler ...'); Exit end; for i := 1 To Memo1.Lines.Count Do s1[1..300]:= Memo1.Lines[i0..299]; Writeln(f, s1); CloseFile(f) end; |
Edit: Juhu mein 16 Post, bin jetzt "volljährig"(hab Geschenke)!
Zuletzt bearbeitet von Bethsoftfan am Fr 28.12.07 21:38, insgesamt 2-mal bearbeitet
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Fr 28.12.07 21:33
Nur mal kurz zum Verständnis: Du willst zu ner Textdatei noch mehr Text hinzufügen, der sich in nem Memo befindet?
Dann hier mal Quick&Dirrty, is zwar sehr schlimm, aber geht  :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.SpeichernClick(Sender: TObject); var tempstringlist:TStringlist; begin tempstringlist:=TStringlist.Create; try tempstringlist.Clear; tempstringlist.LoadFromFile('C:\datei.txt'); tempstringlist.Text:=tempstringlist.Text+memo1.Text; tempstringlist.SaveToFile('C:\datei.txt'); finally tempstringlist.Free; end;
end; |
Edit: zu dem anderen Quelltext. Ich würde es so machen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.SpeichernClick(Sender: TObject); var f : TextFile; i : Integer; s1 : string; begin AssignFile(f, 'c:\Datei.txt'); {$i-} Append(f); {$i+} if IOResult <> 0 then begin ShowMessage('Fehler ...'); Exit end; for i := 0 To Memo1.Lines.Count-1 Do begin s1:= Memo1.Lines[i]; Writeln(f, s1); end; CloseFile(f) end; |
|
|
Herr Bananerama 
      
Beiträge: 130
|
Verfasst: Fr 28.12.07 22:02
@ Regan
ich wollte eigenli aus einem Buch etwas testen und gucken ob das klappt ... es geht mir nicht darum einfach den inhalt aus der memo zu speichern, sonder das ganze mit AssigneFile etc. zu machen. Sry hätte ich vtl. schon früher schreiben sollen. Ich teste trotzdem mal deinen vorschlag. Wäre aber sehr nett von euch wenn ihr mir sagen könntet was konkret an meinem beispiel falsch ist oder warum der das einfach nicht speichert. Danke
|
|
DrRzf
      
Beiträge: 260
Win XP Prof
D7 Enterprise
|
Verfasst: Fr 28.12.07 22:39
@Regan
das begin end hat BethSoftfan versaut ^^
und dein beispiel entspricht dann dem was ich im zweiten post schon angesprochen habe.
Ich habe halt nur von i eins abgezogen, während deine schleife bereits eins früher startet.
_________________ rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
|
|
Herr Bananerama 
      
Beiträge: 130
|
Verfasst: Sa 29.12.07 10:15
|
|
Saubäär
      
Beiträge: 376
|
Verfasst: Sa 29.12.07 10:52
Hi,
also bei mir (D2005PE) funktioniert dein Code, vielleicht einfach nochmal neu compilieren (STRG+F9).
Gruß
|
|
Herr Bananerama 
      
Beiträge: 130
|
Verfasst: Sa 29.12.07 11:06
Saubäär hat folgendes geschrieben: | Hi,
also bei mir (D2005PE) funktioniert dein Code, vielleicht einfach nochmal neu compilieren (STRG+F9).
Gruß |
bei mir funktionierts ja auch ... da steht nachher nur nichts in der text datei drinne ;P. naja ... dann nehme ich das mal so hin ^^
|
|
Saubäär
      
Beiträge: 376
|
Verfasst: Sa 29.12.07 11:09
Hi,
mit funktionieren meinte ich schon, dass der Inhalt des Memos in der Datei drin steht...
Gruß
|
|
Herr Bananerama 
      
Beiträge: 130
|
Verfasst: Sa 29.12.07 11:13
Saubäär hat folgendes geschrieben: | Hi,
mit funktionieren meinte ich schon, dass der Inhalt des Memos in der Datei drin steht...
Gruß |
jo ok dann liegst wohl an mir oder meinem Pc  ich versuchs mal am Pc an der schule wenns wieder losgeht.
|
|