Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie grosse Menge Zeilen einfach in TStringList übertragen? (https://www.delphipraxis.net/106239-wie-grosse-menge-zeilen-einfach-tstringlist-uebertragen.html)

ReBoot 7. Jan 2008 19:08


Wie grosse Menge Zeilen einfach in TStringList übertragen?
 
Bei meinem derzeitigen Projekt will ich vier Textdateien aus dem Programm heraus abspeichern. Die Pfade sind bekannt (=werden ermittelt) und es geht mir nur noch darum, wie ich die Textdateien ablege. Und zwar wollte ich das über TStringList-Objekte lösen, bei denen ich SaveToFile aufrufe. Soweit ist noch alles gut, aber die Teile haben jeweils an die 200 Zeilen. Das ganze per Hand in den Quellcode zu übertragen ist ziemlich deprimierend. Kennt wer ne Möglichkeit, sowas elegant zu lösen?

rawsoul 7. Jan 2008 19:11

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Vier Stringlisten, vier Pfade, warum dann 200 mal speichern? TStringlist.SaveToFile(Pfad) speichert die gesamte Stringlist, nicht nur eine Zeile. Oder habe ich dich komplett falsch verstanden?

ReBoot 7. Jan 2008 19:26

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Vier Stringlisten und 1 bis 20 Pfade. Das an sich ist kein Problem. Die Textdateien, die angelegt werden sollen, enthalten 200 Zeilen und da beginnt das Problem.
Bevor ich also in der Init-Funktion 200 Mal Liste1.Append('ZeileX'); schreibe, wollte ich wissen, ob es auch einfacher geht.

mkinzler 7. Jan 2008 19:28

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Delphi-Quellcode:
TStringlist.LoadFromFile(Pfad)

ReBoot 7. Jan 2008 19:30

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Das setzt voraus, dass ich die vier Dateien mit dem Programm ausliefere. Ich will die in das Programm einkompilieren, sodass der Benutzer nur noch eine EXE hat.

mkinzler 7. Jan 2008 19:31

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Nur zum Deployment? dann bastele dir doch einen Installer oder lege die Werte in der Ressource ab, dann kannst du diese per LoadFromStream() laden

ReBoot 7. Jan 2008 19:35

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Das mit den Ressourcen blick ich net (noch net, müsste mich halt einarbeiten) und hab deshalb gehofft, dass jemand ne einfache Möglichkeit kennt (wie Textdateien per Hexeditor öffnen, Batchweise die ASCII-Steuerzeichen durch Delphi-Steuerzeichen ersetzen und dann die resultierende Riesenzeile in den Programmcode einfügen).

mkinzler 7. Jan 2008 19:41

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Was spricht gegen einen Installer?

ReBoot 7. Jan 2008 19:45

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Du meinst irgendwas vorgefertiges mit Inno/MSI/NSIS? Dagegen spricht die Unflexibilität. Mein Programm ermittelt aus der Registry einen Pfad und prüft auf vorhandene Unterpfade. Bei vorhandenen bestimmten Unterpfaden wird dem Benutzer angeboten, die Dateien dahin zu packen.

Will man es mit nem Installer aufziehen, müsste ich per Delphi zur Laufzeit nen Installer erstellen, da der Pfad nicht im Geringsten vordefiniert ist. Und bau ich nen Installier, der den Pfad aus der Registry ausliest (ist ja möglich), so müsste ich immer noch 11 unterschiedliche Installier bauen für die bestimmten Unterordner und das ist unelegant. Da wollt ich des scho unter einer Oberfläche bauen.

Höchstens wenn du mir nen Installier sagst, der nen Ordner aus der Registry ermittelt und danach noch ausliest, ob bestimmte Unterordner vorhanden sind und davon abhängig dem Benuzer anbietet, Dateien dahin zu installieren, wär ein Installier die Lösung.

mkinzler 7. Jan 2008 19:47

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Zitat:

Du meinst irgendwas vorgefertiges mit Inno/MSI/NSIS? Dagegen spricht die Unflexibilität. Mein Programm ermittelt aus der Registry einen Pfad und prüft auf vorhandene Unterpfade.
Geht doch mit einem Installer auch

ReBoot 7. Jan 2008 19:48

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Vorgehensweise ist:

1. ermittle Pfad
2. schau, ob Unterpade A, B, C (an die 11 Stück) vorhanden sind
3. wenn Unterpfad X vorhanden ist, biete Benutzer an, die Dateien nach X zu entpacken

Was würdest du da empfehlen?

mkinzler 7. Jan 2008 19:52

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
In Inno kann man z.B, das Skript per Hand anpassen oder eine Programm einbinden, welches vom Installer aufgerufen wird und dann wieder gelöscht wird.

ReBoot 7. Jan 2008 19:55

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Weisst du, dass es mit Inno definitiv geht? Wenn ja, dann les ich mir den an. Wenn nicht, würd ich mir gern die Sache mit den Resourcen in Delphi anlesen.

mkinzler 7. Jan 2008 19:57

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Soll der Benutzer die Inhalte ändern/anpassen können?

ReBoot 7. Jan 2008 19:58

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Nein. Der Benutzer soll nur sehen "Gefunden A, B, E, F, H" und abhacken, in welche davon das Zeug installiert werden soll.

mkinzler 7. Jan 2008 20:00

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Nein ich meine die Inhalte.

ReBoot 7. Jan 2008 20:05

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Nein. Sind 4 vordefinierte Textdateien.

mkinzler 7. Jan 2008 20:06

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Nur dann wäre eine Ressource eine Alternative.

ReBoot 7. Jan 2008 20:07

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Hast du grad nen Link zu nem Tut? Find per Forumsuche momentan nichts.

mkinzler 7. Jan 2008 20:16

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Für welche Alternative?
http://www.delphipraxis.net/internal...t.php?t=124219

ReBoot 7. Jan 2008 20:21

Re: Wie grosse Menge Zeilen einfach in TStringList übertrage
 
Für die Resource-Variante.


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