Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Strings vergleichen (https://www.delphipraxis.net/10880-strings-vergleichen.html)

woody 27. Okt 2003 13:15


Strings vergleichen
 
moin,

habe folgendes problem:

ich erhalte eine antwort über die schnittstelle, die inhaltlich wie folgt aussieht:

Delphi-Quellcode:
login
Username:
Username:
jedoch is diese nicht mit enter formatiert, sondern steht in einer zeile mit sonderzeichen(vierecke) verknüpft.
"login..Username:..Username:" (.=viereck)


nun möchte ich dieses ausdruck überprüfen:

Delphi-Quellcode:
  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;
dies funzt jedoch nicht - kann mir da einer helfen?

Assarbad 27. Okt 2003 13:18

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.

Christian Seehase 27. Okt 2003 13:27

Re: Strings vergleichen
 
Moin Woody,

oder setz einen Breakpoint auf diese Zeile

Delphi-Quellcode:
Msg := Trim(Msg);
geh' mit dem Cursor auf Msg.
Dann zeigt Dir die IDE als Hint den Inhalt an, wobei Steuerzeichen im Format #xx angezeigt werden (xx = Dezimalwert des Steuerzeichens)

woody 27. Okt 2003 13:54

Re: Strings vergleichen
 
ich dank dir Christian

Delphi-Quellcode:
'login'#$D'Username:'#$D'Username:'
grüße
woody

Assarbad 27. Okt 2003 13:59

Re: Strings vergleichen
 
*schnarch*

Robert Marquardt 27. Okt 2003 14:29

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.

woody 27. Okt 2003 15:58

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

Alexander 27. Okt 2003 16:19

Re: Strings vergleichen
 
Kuck dir mal POS an.

woody 28. Okt 2003 08:52

Re: Strings vergleichen
 
habs mal so probiert:

Delphi-Quellcode:
          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;
wo liegt da mein fehler?

mirage228 28. Okt 2003 08:56

Re: Strings vergleichen
 
Moin,

es muss

Delphi-Quellcode:
Pos('username', ansilowercase(msg))
heissen!

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