eine Variable in 2 Var. speichern <- gelöst
-
- Beiträge: 91
- Registriert: Sa 6. Feb 2010, 15:58
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
eine Variable in 2 Var. speichern <- gelöst
Hi
Also ich hab da so ein Problem...
Denn ich möchte bei Lazarus eine Variable in 2 Variablen speichern...
also ich hab da so ne Textdateiund die soll mein Programm lesen
und in jeder Zeile sind 2 Werte und die möchte ich in 2 Variablen speichern...
Ach ja zwischen den Werten ist immer ein Leerzeichen und ein Wert ist 5-7 Zeichen lang...
Auf jeden Fall schon mal Danke im Vorras !D
Kann man das überhaupt machen?
Also ich hab da so ein Problem...
Denn ich möchte bei Lazarus eine Variable in 2 Variablen speichern...
also ich hab da so ne Textdateiund die soll mein Programm lesen
und in jeder Zeile sind 2 Werte und die möchte ich in 2 Variablen speichern...
Ach ja zwischen den Werten ist immer ein Leerzeichen und ein Wert ist 5-7 Zeichen lang...
Auf jeden Fall schon mal Danke im Vorras !D
Kann man das überhaupt machen?
Zuletzt geändert von Stephanie H. am Fr 7. Mai 2010, 23:10, insgesamt 3-mal geändert.
-
- Lazarusforum e. V.
- Beiträge: 560
- Registriert: So 10. Sep 2006, 23:24
- OS, Lazarus, FPC: Linux Mint 22; Lazarus 4.0 FPC 3.2.2; RaspiOS
- CPU-Target: AMD 64, ARM 64
- Wohnort: nr Stuttgart
Re: HILFE !!! :D
Hallo Stephanie H,
dein Problem kann man mit Stringlisten lösen. Zunächst musst du deine Stringliste "createn". Dann kannst du die Datei in die Stringliste einlesen und zeilenweise zerlegen. Am Ende musst du deine Stringliste wieder freigeben.
Beispiel-Code als Trockenübung:
Zum Thema Stringlisten gibt es z. B. im Forum Delphi-Treff weitere Hinweise:
http://www.delphi-treff.de/no_cache/tut ... sword_list" onclick="window.open(this.href);return false;[0]=stringliste
Viel Spaß beim Durcharbeiten.
Gruß, Linkat
dein Problem kann man mit Stringlisten lösen. Zunächst musst du deine Stringliste "createn". Dann kannst du die Datei in die Stringliste einlesen und zeilenweise zerlegen. Am Ende musst du deine Stringliste wieder freigeben.
Beispiel-Code als Trockenübung:
Code: Alles auswählen
procedure Form1.btStartClick;
const trennzeichen = ' ';
var
s,s1,s2 :string;
i,l :integer;
sl :TStringList;
begin
sl:=TStringList.Create; //StringListe wird kreiert
sl.LoadFromFile('DeineTextDatei'); //File wird in Stringliste eingelesen
for i:=0 to sl.Count-1 do begin
s:=sl.Strings[i]; //der Text wird zeilenweise in s eingelesen
j:=Pos(trennzeichen,s); //Position des Trennzeichens wird gesucht
if j>0 then begin // wenn Trennzeichen vorhanden, dann
s1:=Copy(s,1,j-1); //die 1. Variable wird von Position 1 bis eine Position vor dem Trennzeichen in s1 eingelesen
s2:=Copy(s,j+1); // die 2. Variable wird von Position nach dem Trennzeichen bis zum Ende von s nach s2 eingelesen
ListBox1.Items.Add(s1);
ListBox2.Items.Add(s2);
end; {if}
end; {for}
sl.Free; //die Stringliste wird wieder freigegeben
end;
http://www.delphi-treff.de/no_cache/tut ... sword_list" onclick="window.open(this.href);return false;[0]=stringliste
Viel Spaß beim Durcharbeiten.
Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: HILFE !!! :D
Solange nur zwei Werte in jeder Zeile stehen, kann man das auch mit einer einzigen StringList bearbeiten (siehe Code). Wenn es darum geht Die Dateioperationen (öffnen, lesen, schreiben) kennen zu lernen, sind diese Listen aber denkbar ungeeignet (siehe Links weiter unten).Linkat hat geschrieben:Hallo Stephanie H,
dein Problem kann man mit Stringlisten lösen. Zunächst musst du deine Stringliste "createn". Dann kannst du die Datei in die Stringliste einlesen und zeilenweise zerlegen. Am Ende musst du deine Stringliste wieder freigeben.
Code: Alles auswählen
var
s: TStringList;
begin
s := TStringList.Create;
s.LoadFromFile('/mein/datei/liegt/hier.txt'); // Datei laden
s.NameValueSeperator := ' '; // Trenner zwischen wert1 und wert2 ist ein Leerzeichen
// an die Daten kommt man jetzt mit
s.Names[] // Wert links vom Leerzeichen
// und
s.Values[] // Wert rechts vom Leerzeichen
s.Free;
end;
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
- af0815
- Lazarusforum e. V.
- Beiträge: 6771
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: HILFE !!! :D
Stephanie H. hat geschrieben:Also ich hab da so ein Problem...


Die kann man über Edit des ersten Beitrages erreichen. Wenn das Problem gelöst ist/wird, so ist hinterher üblich die Lösung zu Posten und ev. den Thread als gelöst zu markieren - einfach gelöst an den Betreff anhängen.
Damit wird erreich, das auch andere Personen davon etwas haben und die Probleme über die Suchen des Forums bzw. Google einfacher gefunden werden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 91
- Registriert: Sa 6. Feb 2010, 15:58
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: HILFE !!! :D
Danke !D
Ich versuch dann mal die Stringliste(n)
ach die andere personen können auch selber ein thema eröffnen...
Ich versuch dann mal die Stringliste(n)
ach die andere personen können auch selber ein thema eröffnen...
-
- Beiträge: 91
- Registriert: Sa 6. Feb 2010, 15:58
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: HILFE !!! :D
Uhh mist...
Ich hab das Thema in FreePascal gespeichert
obwohl das Lazarus ist...egal
wie kann man die überschrift denn ändern?
Ich hab das Thema in FreePascal gespeichert
obwohl das Lazarus ist...egal
wie kann man die überschrift denn ändern?
-
- Beiträge: 91
- Registriert: Sa 6. Feb 2010, 15:58
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: eine Variable in 2 Var. speichern <- gelöst !D
das klappt alles nicht 
Ihr wiist aber schon, dass ich ein Programm mit Delphi schreibe
aber nicht objektorienttiert, nee !!

Ihr wiist aber schon, dass ich ein Programm mit Delphi schreibe
aber nicht objektorienttiert, nee !!
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: eine Variable in 2 Var. speichern HILFE !!!
In diesen Punkt ist Lazarus und Delphi Identisch. Es gibt mehrere Möglichkeiten. Ich bevorzuge diese hier:
Du musst außerdem noch bei PosExt das '|' in ' ' ändern Dann sollte es klappen. Du kannst wenn du mehrere werte hast diese auch in eine StringList speichern oder direkt in einem Dynamischen oder Statischen Array.
Eventuell musst du den Code noch weiter anpassen.
Du weißt aber das es hier ein Lazarus Forum ist ?
Für Delphi-Probleme sind diese Foren besser geeignet:
http://www.delphi-forum.de/" onclick="window.open(this.href);return false;
http://www.delphipraxis.net/" onclick="window.open(this.href);return false;
http://www.dsdt.info/" onclick="window.open(this.href);return false;
http://www.swissdelphicenter.ch/de" onclick="window.open(this.href);return false;
Es sei denn du möchtest Irgendwann Lazarus verwenden.
Edit01: Die LCL und die VLC sind alle OOP. Außerdem wäre es Praktisch / Nett, wenn du das Primäre Problem etwas genauer beschreiben könntest. Probleme haben wir alle. Der eine mehr der andere Weniger. Z.B. wenn es Fehler Meldungen gibt, diese hier Posten: Fehler Meldungen angeklickt, rechte Maustaste und in die Zwischenablage kopieren.
Code: Alles auswählen
p1:=0; w:=0;
repeat
p2:=PosEx('|',str,p1+1);
if p2 > 0 then
str2:=Copy(str,p1+1,p2-p1-1)
else
str2:=Copy(str,p1+1,Length(str)-p1);
// hier musst du jetzt str2 deiner Variable zu weisen z.b. so:
if w = 0 then str1:=str2;
if w = 1 then str2:=str2;
// oder mit einem case.
inc(w); p1:=p2;
until p2 = 0;
Eventuell musst du den Code noch weiter anpassen.
Du weißt aber das es hier ein Lazarus Forum ist ?
Für Delphi-Probleme sind diese Foren besser geeignet:
http://www.delphi-forum.de/" onclick="window.open(this.href);return false;
http://www.delphipraxis.net/" onclick="window.open(this.href);return false;
http://www.dsdt.info/" onclick="window.open(this.href);return false;
http://www.swissdelphicenter.ch/de" onclick="window.open(this.href);return false;
Es sei denn du möchtest Irgendwann Lazarus verwenden.
Edit01: Die LCL und die VLC sind alle OOP. Außerdem wäre es Praktisch / Nett, wenn du das Primäre Problem etwas genauer beschreiben könntest. Probleme haben wir alle. Der eine mehr der andere Weniger. Z.B. wenn es Fehler Meldungen gibt, diese hier Posten: Fehler Meldungen angeklickt, rechte Maustaste und in die Zwischenablage kopieren.
MFG
Michael Springwald
Michael Springwald