| Autor |
Beitrag |
kraz
      
Beiträge: 24
|
Verfasst: Sa 20.09.03 00:32
hallo,
mit dieser funktion versuche ich einen text zwischen 2 werten zu finden. leider funtz es nicht so ganz. was mach ich falsch? manchmal bekomme ich nur teile des ergebnisses ... manchmal garnichts ... oder gibts da noch etwas einfacheres ??
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| function StrBetween(const Target: String; const Start, Stop: String): String; var buf: String; Startpos, Endpos: Integer; i: Integer; begin Startpos := (Pos(Start, Target)+ (length(Start)-1)); buf := Copy(Target, Startpos,length(Target)); Endpos := Pos(Stop, buf);
if (Startpos > 0) and (Endpos > Startpos) then begin Result := Copy(Target, Startpos,Endpos);
if Result = '' then Result := 'keine Angaben'; showmessage('StrBetween: '+Start+' - '+ Stop+' - '+Copy(Target, Startpos + 1, i - 1)); end else Result := 'keine Angaben'; end; |
Moderiert von Tino: Delphi-Tags hinzugefügt.
_________________ Man muss schnell laufen, um dort zu bleiben wo man ist ...
|
|
kraz 
      
Beiträge: 24
|
Verfasst: Sa 20.09.03 08:14
beim debuggen sehe ich in meinem string immer #$A ... wird das da auch so verwendet ... was ist das ???
hab schon mehrere funktionen durch, welche aber irgendwie alle nicht gescheit zählen können, - stört das #$A ???
diese funktion hab ich hier im forum gesehen und auch getestet ...
da geht auch nix ...
HILFÄÄÄÄ- bitte !
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure ExtractIncludesFromString(Str:String); var Str2:String; begin while Pos('Include("',Str)>0 do begin Delete(Str,1,Pos('Include("',Str)-1); if Pos('");',Str)=0 then raise Exception.Create('Syntaxfehler in Zeile "'+Str+'"'); Str2:=Copy(Str,Pos('("',Str)+2,Pos('");',Str)-Pos('("',Str)-2); ShowMessage(Str2); Delete(Str,1,Pos('");',Str)+3); end; end; |
Moderiert von Tino: Delphi-Tags hinzugefügt.
_________________ Man muss schnell laufen, um dort zu bleiben wo man ist ...
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Sa 20.09.03 08:20
Warum benutzt du keine Delphitags, um den Code übersichtlicher zu machen?
Ich verstehe auch nicht so ganz, was du eigentlich vor hast.
Willst du a) den Integer zwischen E5Z = 5 herausfinden
b) den String zwischen 5E5 = E herausfinden Fall a) Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| var a:integer; b:string; begin b:=''; for a:=1 to length(Text) do if Text[a] in ['0'..'9'] then b:=b+Text[a]; Result:=StrToInt(b); end; | Fall b) Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| var a:integer; b:string; begin b:=''; for a:=1 to length(Text) do if not (Text[a] in ['0'..'9']) then b:=b+Text[a]; Result:=b; end; |
Code nicht getestet,
maxk
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
kraz 
      
Beiträge: 24
|
Verfasst: Sa 20.09.03 10:02
Titel: danke, ich werds testen ...
sorry, ich bin noch ganz am anfang und lerne noch ... (das endet wohl nie)
was meinst du mit delphi-tags / und übersichtlicher ... ??
_________________ Man muss schnell laufen, um dort zu bleiben wo man ist ...
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Sa 20.09.03 10:12
Vor deinen Quellcode schreibst du [delphi_] und dahinter schreibst du [/delphi_]. Beides schreibst du ohne den Unterstrich.
Dann wird der Quellcode automatisch formatiert und ist leichter zu lesen.
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
|