![]() |
Strings vergleichen
moin,
habe folgendes problem: ich erhalte eine antwort über die schnittstelle, die inhaltlich wie folgt aussieht:
Delphi-Quellcode:
jedoch is diese nicht mit enter formatiert, sondern steht in einer zeile mit sonderzeichen(vierecke) verknüpft.
login
Username: Username: "login..Username:..Username:" (.=viereck) nun möchte ich dieses ausdruck überprüfen:
Delphi-Quellcode:
dies funzt jedoch nicht - kann mir da einer helfen?
Msg := Trim(Msg);
if Copy(Msg,Length(Msg),10) = ('login'+#$0d#$0a+'Username:'+#$0d#$0a+'Username:') then begin messagedlg('is angekommen', mtInformation, [mbOk], 0); //TrailState := tsUsername; exit; end else begin //TrailState := tsErrATOK; messagedlg('is nicht angekommen', mtInformation, [mbOk], 0); done := TRUE; end; end; |
Re: Strings vergleichen
Schau dir doch mal in einem Hexeditor an, ob das Zeichen (Viereck) nicht vielleicht einfach nur eins von beiden #10 oder #13 oder gar was ganz anderes ist.
|
Re: Strings vergleichen
Moin Woody,
oder setz einen Breakpoint auf diese Zeile
Delphi-Quellcode:
geh' mit dem Cursor auf Msg.
Msg := Trim(Msg);
Dann zeigt Dir die IDE als Hint den Inhalt an, wobei Steuerzeichen im Format #xx angezeigt werden (xx = Dezimalwert des Steuerzeichens) |
Re: Strings vergleichen
ich dank dir Christian
Delphi-Quellcode:
grüße
'login'#$D'Username:'#$D'Username:'
woody |
Re: Strings vergleichen
*schnarch*
|
Re: Strings vergleichen
$D = #13 = Carriage Return
Typisch Unix wo die Zeilenenden nur aus Carriage Returns bestehen. Der Macintosh nimmt #10 = Line Feed und DOS und Windows nehmen #13#10. |
Re: Strings vergleichen
hm klappt doch nicht so richtig - hab ich mich wohl zu früh gefreut...
bin deshalb jetz umgestiegen auf die suche nach einem bestimmten wort in der Msg: kann mir einer sagen wie ich in der Msg jetz nach 'Username' suche. wenn der enthalten is, soll sich ein messagedlg öffnen. danke schon mal im voraus! grüße woody |
Re: Strings vergleichen
Kuck dir mal POS an.
|
Re: Strings vergleichen
habs mal so probiert:
Delphi-Quellcode:
wo liegt da mein fehler?
if pos(ansilowercase(Msg), 'Username') <> 0 then
begin messagedlg('Login is angekommen', mtInformation, [mbOk], 0); exit; end else begin messagedlg('Login is nicht angekommen', mtInformation, [mbOk], 0); end; end; |
Re: Strings vergleichen
Moin,
es muss
Delphi-Quellcode:
heissen!
Pos('username', ansilowercase(msg))
mfG mirage228 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr. |
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