AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi in eine Ini – Datei den Text von einem Memofeld speichern
Thema durchsuchen
Ansicht
Themen-Optionen

in eine Ini – Datei den Text von einem Memofeld speichern

Ein Thema von Remote1 · begonnen am 22. Okt 2003 · letzter Beitrag vom 23. Okt 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Remote1
Remote1

Registriert seit: 22. Okt 2003
Ort: Dippoldiswalde
252 Beiträge
 
Delphi 6 Personal
 
#1

in eine Ini – Datei den Text von einem Memofeld speichern

  Alt 22. Okt 2003, 10:17
Wie kann ich in eine Ini – Datei den Text von einem Memofeld speichern?
Mit
Ini.WriteString(datetimetostr(datum),'Text',form1. memo1.text);
wird nur die 1. Zeile des Memos gespeichert.
Ich könnte natürlich auch Memo1.Lines.SaveToFile(’C:\test.txt’) verwenden, aber ich brauche unbedingt die Einteilung in Sections wie bei Ini - Dateien.
Ich kann auch nicht alle Zeilen einzeln durchgehen und speichern, da ich natürlich auch alle ENTER vom Memo mit übertragen möchte (nicht einzelne Lines, da jede Zeile nicht unbedingt durch ein ENTER, sondern auch durch Zeilensprung neue Line).
Kann mir irgend jemand weiterhelfen oder gibt es noch ein ähnliches Objekt was ich verwenden könnte???
Im Prinzip bräuchte ich ein SaveToFile mit Sections
  Mit Zitat antworten Zitat
Benutzerbild von Remote1
Remote1

Registriert seit: 22. Okt 2003
Ort: Dippoldiswalde
252 Beiträge
 
Delphi 6 Personal
 
#2

Re: in eine Ini – Datei den Text von einem Memofel

  Alt 22. Okt 2003, 10:40
Hab’s jetzt mal mit noch ner StringList probiert, aber ist natürlich ein wenig billig gemacht (aber es funktioniert zumindest schon mal annähernd so wie ich das will)
Ich denke aber mal, dass ich da irgend wann Probleme mit dem
temp.LoadFromFile(pfad);
bekommen werde, da es ja auch immer mehr Text wird welcher geladen werden muss.
Da würde schon mal mein Programm immer langsamer und was ist wenn der Arbeitsspeicher nicht mehr ausreicht???
Zumal hat ein Memo ja auch eine begrenzte Anzahl von Zeichen (habs mal ausprobiert, waren ca. 56511)
Also Ihr seht, keine perfekte Lösung, aber ein Ansatz.
Vielleicht habt Ihr ja noch ne zündende Idee.


Delphi-Quellcode:
if form1.Memo1.Lines[0]=''
 then
  begin
   Form1.Memo1.Clear;
   exit;
  end;
pfad:='D:\memo.txt';
temp:=TStringList.Create;
if not fileexists(pfad)
 then
  begin
   temp.Clear;
   temp.SaveToFile(pfad);
  end;
temp.LoadFromFile(pfad);
temp.Add('['+datetimetostr(now)+']');
temp.Add(memo1.Text);
temp.Add('');
temp.SaveToFile(pfad);
memo1.Clear;
temp.Clear;
[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#3

Re: in eine Ini – Datei den Text von einem Memofeld speicher

  Alt 22. Okt 2003, 11:12
einfahc mit einer For-SChleife jede Zeile durchgehen, am besten du speicherst es in der Form ab:
Code:
1=erste Zeile..
2=zweite Zeile...
Edit: Du weißt, dass es beim Memo auch die Funktion SaveToFile() gibt, oder?
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Remote1
Remote1

Registriert seit: 22. Okt 2003
Ort: Dippoldiswalde
252 Beiträge
 
Delphi 6 Personal
 
#4

Re: in eine Ini – Datei den Text von einem Memofeld speicher

  Alt 22. Okt 2003, 11:18
wie im oberen komment angegeben möchte ich savetofile() nicht verwenden, da ich eine einteilung in sections brauche und wenn ich jede zeile einzeln iun eine ini schreibe komme ich irgend wann an meine 32 einträge ran
zudem geht mir dann das enter verlogen, da nicht jede zeile ein enter druck ist sondern auch ein zeilenumsprung sein kann.
mit savetofile() ist dies nicht der fall. es werden alle zeilen richtig mit enter gespeichert (bei enter neue zeile), aber ich hab da keine sections.
mir würde es ja schon helfen, wenn ich die datei nicht jedes mal neu lade müsste, sondern einfach etwas hinten dran hengen könnte
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

Re: in eine Ini – Datei den Text von einem Memofeld speicher

  Alt 22. Okt 2003, 11:23
Dann machst du halt ne kleine Schleife, die immer nach dem #13#10 (Enter) sucht und dann den entsprechenden text rauskopiert und den speicherst du dann ab.
Kuck dir dazu mal die While-Schliefen und POS an.
Alexander
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: in eine Ini – Datei den Text von einem Memofel

  Alt 22. Okt 2003, 11:26
Moin Remote,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Zitat von Remote1:
wenn ich jede zeile einzeln iun eine ini schreibe komme ich irgend wann an meine 32 einträge ran


was für 32 Einträge?

Zitat von Remote1:
da nicht jede zeile ein enter druck ist sondern auch ein zeilenumsprung sein kann.
mit savetofile() ist dies nicht der fall. es werden alle zeilen richtig mit enter gespeichert (bei enter neue zeile),
Da hab' ich auch ein Verständnisproblem.
Wenn Du jede Zeile als Eintrag in einer INI speicherst, und wieder lädst, indem Du sie mit Memo.Lines.Add hinzufügst, hast Du auch einen Zeilenvorschub.
Beim Einlesen über LoadFromFile werden sogar einzelne #10 in #13#10 umgewandelt. D.h.: Im Memo ist immer #13#10 als Zeilenende enthalten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Remote1
Remote1

Registriert seit: 22. Okt 2003
Ort: Dippoldiswalde
252 Beiträge
 
Delphi 6 Personal
 
#7

Re: in eine Ini – Datei den Text von einem Memofeld speicher

  Alt 22. Okt 2003, 11:33
hi Chris
ist ja im prinzip meine rede.
ich will halt eine ini welche mehrzeilige strings speichert und zwar nach jedem enter eine neue zeile.
wenn ich nun das memo durchgehe und #10#13 durch einen platzhalter ersetze habe ich zwar dann insgesammt eine zeile und könnte dies in meine ini speichern, aber was ist wenn der nutzer duch einen blöden zufall genau diesen platzhalter in das memo schreibt, dann stimmen die enter nicht mehr
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: in eine Ini – Datei den Text von einem Memofel

  Alt 22. Okt 2003, 11:35
Moin Remote,

ich dachte eigentlich daran, jeder Zeile im Memo eine Zeile in der INI zu spendieren:

Code:
[MEMO]
Zeile1=aljalsfdjlsad
Zeile2=ajlflaöasdfj

usw.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Remote1
Remote1

Registriert seit: 22. Okt 2003
Ort: Dippoldiswalde
252 Beiträge
 
Delphi 6 Personal
 
#9

Re: in eine Ini – Datei den Text von einem Memofeld speicher

  Alt 22. Okt 2003, 11:37
seht euch doch bitte mal oben meinen ansatz an
da hab ichs ja schon fast (alle enter richtig gesetzt und als section das datum)
mein problem bei dem ansatz ist halt nur das laden der datei, denn was ist wenn die datei mal ein paar MB groß ist
dann würde die ganze sache zu lange dauern
und problem nummer zwei ist die beschränkte zeichenanzahl (blöd wenn man z.b. texte mit Str+V einfügt und die zu groß sind, dann wird nähmlich einfach das ende abgeschnitten)
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: in eine Ini – Datei den Text von einem Memofeld speicher

  Alt 22. Okt 2003, 12:04
Hallo Remote1,

abgesehen davon, daß INI-Files schon ein etwas betagtes Konzeot sind (MS empfiehlt die Registry zu verwenden): brauchst Du wirklich immer den ganzen Text? Dann speichere doch den Text direkt aus dem Memo in eine Datei mit eindeutigem Namen und speichere in der INI nur den Namen (mit Pfad o.ä.), das reduziert die Lesezeiten der INI erheblich und Du lädst den Text halt bei Bedarf. Das sind nur wenige Anweisungen mehr und geht sehr zügig. So arbeiten übrigens viele Datenbanken!
Damit bleibt der Hauptvorzug von INI-Dateien (schneller Zugriff wg. Section etc.) einigermaßen erhalten. Jede zeilenweise Behandlung ist deutlich langsamer und aufwendiger!
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:42 Uhr.
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