Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   Längenabfrage eines Strings geht nicht... (https://www.delphipraxis.net/123871-laengenabfrage-eines-strings-geht-nicht.html)

Teekeks 10. Nov 2008 16:25


Längenabfrage eines Strings geht nicht...
 
Hi!
Ich hab mahl ne frage: warum geht das hier nicht?
Delphi-Quellcode:
if length(s1)>0 and s1[1]<>'#'then
{...}
s1 ist ein string.

und ich kriege folgende fehlermeldung:
Zitat:

neue_buecher.pas(169,27) Error: Incompatible types: got "Char" expected "LongInt"
gruß Teekeks

mkinzler 10. Nov 2008 16:26

Re: Längenabfrage eines Strings geht nicht...
 
Versuch mal
Delphi-Quellcode:
if (length(s1)>0) and (s1[1]<>'#') then

himitsu 10. Nov 2008 16:26

Re: Längenabfrage eines Strings geht nicht...
 
Das AND hat Vorrang vor den Vergleichsoperatoren.
(steht auch irgendwo in der OH ... z.B. siehe Delphi-Referenz durchsuchenand)

Lösung: Klammern :angel2:

Delphi-Quellcode:
if (length(s1) > 0) and (s1[1] <> '#') then

[add]pühhh, einfach so vordrängeln :shock:

Teekeks 10. Nov 2008 16:32

Re: Längenabfrage eines Strings geht nicht...
 
Opps, stimmt danke ^^ :oops: irgentwie stand ich auf dem Schlauch ^^

gruß und dank: Teekeks
p.s.: omg! einfach Klammern ^^

himitsu 10. Nov 2008 16:51

Re: Längenabfrage eines Strings geht nicht...
 
jupp, so einfach ^^

PS: wenn du Delphi die Wahl überläßt, in welcher Reinfolge es verarbeiten soll, dann kommt sowas bei raus
Code:
[b]if[/b] ([color=#008000]([/color]length(s1) > [color=#ff0000]([/color]0 [b]and[/b] s1[1][color=#ff0000])[/color][color=#008000])[/color] <> '#') [b]then[/b]
und das erklärt dan auch noch ganz einfach den Fehler:
0 and s1[1]
Integer AND Char


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz