String zerlegen mit Copy

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Inventio
Beiträge: 39
Registriert: So 21. Mär 2010, 14:00

String zerlegen mit Copy

Beitrag von Inventio »

Servus,
ich habe zwar einen anderen Thread zu diesem Thema gelesen, aber wenn ich das so mache wie dort beschrieben funktioniert es nicht.
Was ich machen will ist, das ich eine Textdatei in einen String lade.
Die TxtDatei sieht so aus:

1
Inventio
13

nun will ich den namen "Inventio" in einen Seperaten string kopieren.
Da jede Zeile mit #13 #10 beendet wird habe ich gedacht das der befehl so aussehen müsste:

Code: Alles auswählen

name:=copy(ganzer_string,4,pos(chr(13),ganzer_string)-1);
Wenn ich aber dann mein Programm starte wird nur das "I" angezeigt.....
Wenn die zahl 4 ändere bekomme ich den Error:
""x" is not a valid component name"
Was mache ich falsch?

Grüße Inventio

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: String zerlegen mit Copy

Beitrag von Teekeks »

1. könntest du die Datei z.B. mit Readln(datei,string_variable_in_die_die_zeile_gespeichert_werden_soll) einlesen.
2. Ist z.B. bei Unix der Zeilenseperator nur ein #10 und nicht #10#13
3. ist der von dir genannte Fehler nicht in der einen Zeile Code zu finden die du uns hier gegeben hast.

Inventio
Beiträge: 39
Registriert: So 21. Mär 2010, 14:00

Re: String zerlegen mit Copy

Beitrag von Inventio »

Wie kann ich denn festlegen,dass er nur die zweite Zeile einliest und nich alle oder nur die erste

Benutzeravatar
theo
Beiträge: 10871
Registriert: Mo 11. Sep 2006, 19:01

Re: String zerlegen mit Copy

Beitrag von theo »

Warum nicht einfach eine TStringList verwenden?

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: String zerlegen mit Copy

Beitrag von Teekeks »

so rein generell garnicht, aber du kannst z.B. folgendes auch machen:

Code: Alles auswählen

var sl:TStringList;
begin
  sl:=TStringlist.create;
  sl.LoadFromFile('der dateiname');
  die2teZeile:=sl.Strings[1];
  sl.free;
end;
Edit: Mensch Theo, das wollt ich jetzt gerade sagen...

Inventio
Beiträge: 39
Registriert: So 21. Mär 2010, 14:00

Re: String zerlegen mit Copy

Beitrag von Inventio »

Dankesehr für die antwort es klappt!
Mit der Antwort "einen TStringList verwenden" hätte ich nicht viel anfangen können,weil ich nicht weis was das ist
(Ich bin in solchen sachen noch nicht so bewandert).
Bei der gelegenheit könnte ich mal nachfragen, wo ich solche sachen schnell und Effektiv suchen kann.

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: String zerlegen mit Copy

Beitrag von Teekeks »

Da hätte man dann allerdings sich zu belesen können (ist nicht allzu schwer)

Antworten