Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Zugriff auf String


Swordooo - Fr 17.10.08 19:22
Titel: Zugriff auf String
Guten Abend :D

Sorry schon mal im Voraus, aber ich habe nichts in der Suche gefunden/ bzw mir viel kein passender Suchbegriff ein.
Ích beschreibe mal mein Problem (vereinfacht):
Ich möchte aus einer *.txt-Datei einen String Laden undzwar in dieser Form:
C(A) (usw...). Also ich möchte nun meiner Variablen "loadedtxt" den String A (also immer das, was in den Klammer steht zuweisen). Dies kann ich nicht mit

Delphi-Quelltext
1:
2:
MeinString := MeineGeladeneStringList.Strings[1]
loadedtext := MeinString[3]
erledigen, da ja das was in den Klammern steht unendlich lang sein kann.
Gibt es hierfür eine Lösung?

Danke!
Swordooo


Moderiert von user profile iconNarses: Topic aus Dateizugriff verschoben am Fr 17.10.2008 um 19:50


LexXis - Fr 17.10.08 19:27

Die Stichwörter Copy() und Pos() sollten weiterhelfen

mfg


Swordooo - Fr 17.10.08 20:14

Ok danke....Aber so ganz versteh ich das noch nicht!

Also, wenn ich jetzt in MeineStringList.Strings[0] den String  C*A* habe dann kann ich die Position des "*" Sternchens mit
Pos($6A,MeineStringList.Strings[0]); herausfinden. Nun weiß ich nicht genau weiter.

Ich hatte folgendes:

Delphi-Quelltext
1:
loadedtxt := Copy(MeineStringList.Strings[0], Pos($6E, MeineStringList.Strings[0]), length(MeineStringList.Strings[0])-3);  //Copy(String, VonWo, BisWo) ??                    


Hierfür habe ich mich auf folgenden Beitrag von jeanicke bezogen (2.): http://www.delphi-forum.de/viewtopic.php?t=86887&highlight=pos

Bitte helt mir!

MfG Swordooo


<TargeT> - Sa 18.10.08 01:15

Guck mal hier: http://www.delphi-treff.de/no_cache/tutorials/objectpascal/stringverarbeitung/page/2/?cHash=2598e6cf8f&sword_list[0]=stringverarbeitung
da ist alles ganz einfach erklärt....


Fabian E. - Sa 18.10.08 01:44

Versuchs doch mal so in der Art:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var
  tmp,tmp2 : string;
  FirstDelimiter, SecondDelimiter, CopyLength: Integer;
  Delimiter : char;

begin
    Delimiter := '*';
    ReadLn(tmp);
    FirstDelimiter := Pos(Delimiter,tmp)+1;
    SecondDelimiter := PosEx(Delimiter,tmp,FirstDelimiter);
    CopyLength := SecondDelimiter - FirstDelimiter;
    tmp2 := Copy(tmp,FirstDelimiter,CopyLength);
    WriteLn(tmp2);
    ReadLn;
end.