| Autor |
Beitrag |
V!P3R
      
Beiträge: 151
|
Verfasst: Mo 14.07.08 14:00
Ich speichere einen Text zum beispiel:#
Delphi-Quelltext 1:
| RichEdit1.Text:='Hallo,'+#13#10+#13#10+'Das ist nur ein Beispiel!' |
das würde dann so aussehen:
Quelltext 1: 2: 3:
| Hallo,
Das ist nur ein Beispiel! |
wenn ich ihn also speichere und anschließend wieder einlese steht in dem richedit nur noch:
Quelltext
mit dem Enter kommt die Ini datei nicht zurecht.
Ich hab mal in die IniDatei geguckt, dort steht es so:
Quelltext 1: 2: 3: 4:
| [Sek1] RichEdit1=Hallo,
Das ist nur ein Beispiel! |
beim einlesen liest delphi aber (wie oben schon gesagt) nur das, was in der selben zeile steht, mit dem enter kommt delphi nicht zurecht.
warum und wie kann ich das ändern?
MfG Moderiert von Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 14.07.2008 um 15:52
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 14.07.08 14:04
Eine Ini ist halt nicht für Werte, die über mehrere Zeilen gehen, ausgelegt.
Warum speicherst du das Richedit nicht einfach mit SaveToFile?
|
|
V!P3R 
      
Beiträge: 151
|
Verfasst: Mo 14.07.08 14:22
weil ich dann über 25 txt oder word dateien bräuchte!
(sprich ich habe über 25 memos und richedits in meinem projekt)
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 14.07.08 14:24
Und?
Ansonsten hier einige Stichwörter:
TStream
TFileStream
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Mo 14.07.08 14:26
Edit: Sorry war TStringlist - Mein Fehler. 
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
Zuletzt bearbeitet von Blackheart666 am Mo 14.07.08 15:13, insgesamt 1-mal bearbeitet
|
|
PeterPain
      
Beiträge: 83
|
Verfasst: Mo 14.07.08 14:27
Du könntest auch vor dem speichern die Zeilenumbrücke durch ein anderes Zeichen ersetzen, und das dann andersherum nach dem laden wieder rückgängig machen. Ist auch nicht sonderlich elegant, sollte aber funktionieren.
gruss
|
|
nagel
      
Beiträge: 708
Win7, Ubuntu 10.10
|
Verfasst: Mo 14.07.08 14:32
PeterPain hat folgendes geschrieben: | | Du könntest auch vor dem speichern die Zeilenumbrücke durch ein anderes Zeichen ersetzen, und das dann andersherum nach dem laden wieder rückgängig machen. Ist auch nicht sonderlich elegant, sollte aber funktionieren. |
Soweit ich weiß gibt es aber eine maximale Länge für einen Eintrag in einer Ini, d.h. bei längeren Texten wird das auch nicht funktionieren.
|
|
Swordooo
      
Beiträge: 119
W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
|
Verfasst: Mo 14.07.08 14:59
| Zitat: | | Warum speicherst du das Richedit nicht einfach mit SaveToFile? |
ich würde mal sagen, das ist die einfachste Lösung.
|
|
V!P3R 
      
Beiträge: 151
|
Verfasst: Mo 14.07.08 15:32
bei den 20 memos hab ich PeterPains Idee genommen,
bei den 5 richedits werd ich sie wohl mit SaveToFile speichern müssen,
Vielen dank.
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Mo 14.07.08 15:41
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
Swordooo
      
Beiträge: 119
W2K, Windows XP Professional
Delphi 2005 Personal, Delphi 7 Personal
|
Verfasst: Mo 14.07.08 15:50
Ich denke mal er hat den Quelltext weggelassen: | Zitat: |
wenn ich ihn also speichere und anschließend wieder einlese steht in dem richedit nur noch: |
Laut der Aussage muss er ja i-wie speichern.
|
|
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 14.07.08 16:24
Machs doch einfach so:
- einen Sektion beschreibt ein RichEdit
- dann schreibst du als erstes die Anzahl der Zeilen in die Sektion
- & mit einer Schleife schreibst du jede Zeile einzeln rein und nummeriest sie
das ganz sieht dann ungefaehr so aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| TIniFile.WriteInteger('1', 'count', RichEdit1.Lines.Count) for i:=1 to RichEdit.Lines.Count do begin TInifile.WriteString('1', IntToStr(i), RichEdit1.Lines[i-1]); end; |
Wenn du wriklich 25 RichEdits hast, kannst du auch noch ne äußere Schleife "drumherumbasteln" und mit FindComponent (=> F1) das jeweillige RichEdit automatisch wählen, vorausgesetzt sie sind der Reihe nach durchnummeriert ..
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Mo 14.07.08 20:13
Vieleicht hilft dir ja noch CommaText etwas weiter.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| var Form1: TForm1; Ini:TIniFile;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin Ini:=TIniFile.Create(ExtractFileName(ParamStr(0))+'MyIni.ini'); end;
procedure TForm1.SaveClick(Sender: TObject); begin RichEdit.Lines.Add('"Text"'); RichEdit.Lines.Add(''); RichEdit.Lines.Add('"Text"'); RichEdit.Lines.Add(''); RichEdit.Lines.Add('"Text"'); Ini.WriteString('Rich','RichText',RichEdit.Lines.CommaText); end;
procedure TForm1.LoadClick(Sender: TObject); begin RichEdit.Clear; RichEdit.Lines.CommaText:=Ini.ReadString('Rich','RichText','Kein Eintrag'); end;
procedure TForm1.FormDestroy(Sender: TObject); begin Ini.Free; end;
end. |
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 14.07.08 20:15
Moin!
Blackheart666 hat folgendes geschrieben: | | Vieleicht hilft dir ja noch CommaText etwas weiter. |
Vorsicht Falle, TIniFile.ReadString macht intern ein unquote, damit fallen die äußersten Anführungszeichen ggfs. weg! Siehe FAQ-Beitrag.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|