Inhalt einer TXT-Datei in Word-Datei schreiben
Re: Inhalt einer TXT-Datei in Word-Datei schreiben
Probier's halt. Kostet nichts, und es kann nichts schief gehen...
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: Inhalt einer TXT-Datei in Word-Datei schreiben
Probieren geht über(und schneller als) studieren (bzw. Frage posten).
MFG
Komoluna
MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
Re: Inhalt einer TXT-Datei in Word-Datei schreiben
Okay, zwischendurch mal ein dickes Danke an alle die hier kräftig mithelfen. Ich bin erst seit kurzem mit Lazarus unterwegs und freue mich immer wieder neues zu lernen!
Da nun das auslesen gut klappt (dank euch
) kann ich einen Schritt weiter gehen. Es sollen nur Teile einer TXT-Datei ausgelesen werden. Genau gesagt, es sollen nur die Zeilen in den String (welcher als Puffer fungiert) geschrieben werden, die mit einer speziellen Buchstabenkombination beginnen. Beispiel:
aus
sollen nur die Zeilen in den String geschrieben werden, welche mit "A" beginnen:
kann man das irgendwie filtern? Die Zahl der Einträge variiert natürlich, was es unmöglich macht zu sagen, wie oft ReadLn(File1, str); also der Lesen-Befehl ausgeführt wird. Meine Idee geht in folgende Richtung: Es werden alle Zeilen gelesen, der erste Buchstabe ausgewertet, per if then else entschieden ob in den string übertragen wird.
Nur habe ich keinen Ansatz wie das gehen soll... (bin eben noch Einsteiger
)
Da nun das auslesen gut klappt (dank euch

aus
Code: Alles auswählen
A 795 [ ] Makro 99*
A 796 [ ] Makro 99*
A 797 [ ] Makro 99*
A 798 [ ] Makro 99*
A 799 [ ] Makro 99*
A 800 [ ] Makro 99*
Makro 222 [ ] Makro 220
Makro 223 [ ] Makro 220
M 1 [Pneumatische Kontrollen und maschinelle Sicherheit] Folge 7, 42, 124, 999, UP 1, 8, 9, 10, Makro 95*
M 18 [Stellungsueberwachung S-Zange 1] Makro 1*, 2*, 3*, 54*, 95, 201*, 210*, 211*, 212*, 213*, 221*, 0*
M 24 [Spanngruppe5 YP17 in V & !R Stellung] Makro SPS
bin 1 [Schweissprogramm BOSCH] Folge 7*, 42*, 124*, 999*, UP 1*, 10*, Makro 216*
bin 10 [Fzg-Typ an Bosch] Folge 7*, 42*, 999*, UP 1*
t 1 Folge 42*, 999*, Makro 82
t 2 Folge 42*
Code: Alles auswählen
A 795 [ ] Makro 99*
A 796 [ ] Makro 99*
A 797 [ ] Makro 99*
A 798 [ ] Makro 99*
A 799 [ ] Makro 99*
A 800 [ ] Makro 99*
Nur habe ich keinen Ansatz wie das gehen soll... (bin eben noch Einsteiger

Re: Inhalt einer TXT-Datei in Word-Datei schreiben
Es gibt verschiedene Möglichkeiten.
Eine simple Variante:
Wenn die Datei riesig gross ist, gibt es sparsamere Möglichkeiten.
Eine simple Variante:
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var SLO, SLR:TStringList;
i:integer;
begin
SLO:=TStringList.Create;
SLO.LoadFromFile('/home/theo/litest.txt');
SLR:=TStringList.Create;
For i:=0 to SLO.Count-1 do
if SLO[i][1]='A' then SLR.Add(SLO[i]);
ShowMessage(SLR.Text);
SLR.Free;
SLO.Free;
end;
Re: Inhalt einer TXT-Datei in Word-Datei schreiben
Okay, die Variante gefällt mir erstmal, weil sie simpel ist und funktioniert! Meine Datei hat aber bin zu 2000 Zeilen... wirkt sich das arg auf die Performance aus?
Re: Inhalt einer TXT-Datei in Word-Datei schreiben
Nö, ich meinte sowieso eher den Speicherverbrauch, aber so ab ein paar 100 MB.pascalts hat geschrieben:Okay, die Variante gefällt mir erstmal, weil sie simpel ist und funktioniert! Meine Datei hat aber bin zu 2000 Zeilen... wirkt sich das arg auf die Performance aus?
Für 2000 Zeilen lohnen sich keine Optimierungen, ausser in besonders kritischen Fällen (Multithreaded Server vllt.)
Re: Inhalt einer TXT-Datei in Word-Datei schreiben
okay, danke. habe lange nicht mehr so viel gelernt wie in der letzten Woche hier im Forum. Aber jetzt kommt der Hammer: Ich muss in einer .ini-Datei (die sich sicher wie eine .txt Datei öffnen lässt, oder?) eine (einzelne) Zeile finden, welche mit RobName= beginnt UND dann das was danach steht in eine Variable verwandeln (meist ist das was danach steht eine Kombination aus Zahlen und Großbuchstaben, danach eine neue Zeile). Es sind keine Wiederholungen nötig oder Ähnliches... Vorschläge?