Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Auslesen/ Auswerten einer Textdatei (https://www.delphipraxis.net/116636-auslesen-auswerten-einer-textdatei.html)

BullsEye 3. Jul 2008 14:49


Auslesen/ Auswerten einer Textdatei
 
Hallo Leute,
wir hatten heute im Unterricht langeweile und da sind wir auf die Idee gekommen, uns einen "Editor" zu schreiben.
Dieser lädt eine bestimmte Textdatei in ein Memofeld. Von dort werden dann bestimmte Zeilen in die entsprechenden Edits geladen.
Soweit so gut, es funktioniert auch alles. Allerdings will ich nur den Wert aus der Zeile lesen und in das Edit laden.

BSP:
Als erstes lade ich mir das Textdokument in das Memofeld:
Delphi-Quellcode:
Memo1.Lines.LoadFromFile('cars/'+ComboBox1.text+'/Parameters.txt');
In dem Textdokument steht in der Zeile 47 folgendes:
Delphi-Quellcode:
Weight       1.400000          ; Scaled weight (for frontend bars)
Dies wird dann mit
Delphi-Quellcode:
edtGewicht.text := Memo1.Lines[48];
Ausgelesen und mit
Delphi-Quellcode:
Memo1.Lines[47] := edtGeschwindigkeit1.Text;
gespeichert/ geändert.

Dann erhalte ich folgedens in edtGewicht:
Delphi-Quellcode:
Weight       1.400000          ; Scaled weight (for frontend bars)
Ich will aber nur dies erhalten:
Delphi-Quellcode:
1.400000
######
Problem 2 Kein Text in der ComboBox:
Delphi-Quellcode:
IF
(Memo1.Lines[96] = 'IsTurnable    TRUE') AND (Memo1.Lines[117] = 'IsTurnable    TRUE')
AND
(Memo1.Lines[138] = 'IsTurnable    TRUE') AND (Memo1.Lines[159] = 'IsTurnable    TRUE')
THEN
ComboBox5.Text := 'Beide';
IF
(Memo1.Lines[96] = 'IsTurnable    TRUE') AND (Memo1.Lines[117] = 'IsTurnable    TRUE')
AND
(Memo1.Lines[138] = 'IsTurnable    FALSE') AND (Memo1.Lines[159] = 'IsTurnable    FALSE')
THEN
ComboBox5.Text := 'Vorne'
ELSE
ComboBox5.Text := 'Hinten';
Desweiteren wird auch keine Änderung in der Memo genmacht bzw nur in der ersten Zeile:
Delphi-Quellcode:
IF ComboBox6.Text = 'Vorderrad' THEN
Memo1.Lines[95] := 'IsPowered    TRUE';           // Zeile 1
Memo1.Lines[116] := 'IsPowered    TRUE';   // Zeile 2
Memo1.Lines[137] := 'IsPowered    FALSE';  // Zeile 3
Memo1.Lines[158] := 'IsPowered    FALSE';  // Zeile 4
IF ComboBox6.Text = 'Hinterrad' THEN
Memo1.Lines[95] := 'IsPowered    FALSE';
Memo1.Lines[116] := 'IsPowered    FALSE';
Memo1.Lines[137] := 'IsPowered    TRUE';
Memo1.Lines[158] := 'IsPowered    TRUE';
IF ComboBox6.Text = 'Allrad' THEN
Memo1.Lines[95] := 'IsPowered    TRUE';
Memo1.Lines[116] := 'IsPowered    TRUE';
Memo1.Lines[137] := 'IsPowered    TRUE';
Memo1.Lines[158] := 'IsPowered    TRUE';
Ich hoffe, ihr könnt mir helfen. Vllt gibts na ne ander/bessere oder sogar ne viel einfachere Lösung!

DeddyH 3. Jul 2008 14:56

Re: Auslesen/ Auswerten einer Textdatei
 
Zum 3. Problem: begin und end setzen. Das Herauslösen des Wertes aus der Zeile könntest Du mit Stringfunktionen wie Pos(), Copy(), delete() etc. erledigen. Und welchen Style hat die Combobox? Kannst Du den Text überhaupt setzen?

BullsEye 3. Jul 2008 15:02

Re: Auslesen/ Auswerten einer Textdatei
 
Zitat:

Zitat von DeddyH
Zum 3. Problem: begin und end setzen.

Danke, vergess ich immer wieder :wall:

Zitat:

Zitat von DeddyH
Das Herauslösen des Wertes aus der Zeile könntest Du mit Stringfunktionen wie Pos(), Copy(), delete() etc. erledigen

Geht das beim Normalen Memofeld?

Zitat:

Zitat von DeddyH
Und welchen Style hat die Combobox? Kannst Du den Text überhaupt setzen?

csDropDownList...Damit man nicht selbst was reinschreiben kann.. Aber das müsste doch trotzdem gehen oder?

Reinhardtinho 3. Jul 2008 15:04

Re: Auslesen/ Auswerten einer Textdatei
 
Wenn in der ComboBox schon der Wert drin steht, wähle ihn doch mit ItemIndex aus.

DeddyH 3. Jul 2008 15:10

Re: Auslesen/ Auswerten einer Textdatei
 
Zitat:

Delphi-Quellcode:
Weight       1.400000          ; Scaled weight (for frontend bars)

Sind das Tabulatoren dazwischen? Dann ginge z.B. so etwas (aus dem Kopf dahergetippt):
Delphi-Quellcode:
s := Memo1.Lines[Index];
Delete(s,1,Pos(#9,s));
Delete(s,Pos(#9,s),Length(s));

p0w3r5tr34m3r 3. Jul 2008 15:12

Re: Auslesen/ Auswerten einer Textdatei
 
Wieso machste es nicht mit delimitern wie z.B. einem ; hinter den werten?! dann könntest du das ganze als CSV auswerten (lassen)

BullsEye 3. Jul 2008 15:12

Re: Auslesen/ Auswerten einer Textdatei
 
Zitat:

Zitat von Reinhardtinho
Wenn in der ComboBox schon der Wert drin steht, wähle ihn doch mit ItemIndex aus.

Kleines Prob. In der Schule arbeiten wir mit Delphi 5, da gibts noch kein ItemIndex. Sonst hätte ich das auch schon genutzt ;)

Ja, sind Tabulatoren drinne!

DeddyH 3. Jul 2008 15:15

Re: Auslesen/ Auswerten einer Textdatei
 
In Delphi 5 gibt es sehr wohl TComboBox.ItemIndex.

BullsEye 3. Jul 2008 20:55

Re: Auslesen/ Auswerten einer Textdatei
 
Zitat:

Zitat von DeddyH
In Delphi 5 gibt es sehr wohl TComboBox.ItemIndex.

Wenn ich dies Jahr nochmal an die Schulrechner komme, kann ich dir gernen einen "Beweisscreenshot" mitbringen. Ich bekomm jedes Mal eine Fehlermeldung.!

haentschman 3. Jul 2008 21:30

Re: Auslesen/ Auswerten einer Textdatei
 
Hallo...
Zitat:

In Delphi 5 gibt es sehr wohl TComboBox.ItemIndex.
...DeddyH hat Recht :thumb:

...auf den Screenshot bin ich mal gespannt :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz