Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi AnsiStartsStr: String-Zahlen, die mit '00' beginnen ? (https://www.delphipraxis.net/173344-ansistartsstr-string-zahlen-die-mit-00-beginnen.html)

michaelarban 18. Feb 2013 19:40

Delphi-Version: 2007

AnsiStartsStr: String-Zahlen, die mit '00' beginnen ?
 
Hallo,


Ich verwende die Delphi-eigene Funktion AnsiStartsStr, um festzustellen, ob ein String mit '00' (2 führende Nullen) anfängt:

Bsp':

Code:
myKundenNr :='00234567341' ; // String beginnt mit 2  Nullen; String enthält nur die Ziffern 0-9

if ( AnsiStartsStr('00', myKundenNr) ) then
begin
 mache_etwas();
end
else
begin
 mache_was_anderes ();
end;
Auf meinem Computer funtkioniert es auch ordnungsgemäß , jedoch funktionert es
nicht auf einem anderen Rechner, d.h im obigen Falle wird fälschlicherweise der else-Zweig durchlaufen.

Kann es sein, dass es am Gebietsschema liegt? Aber warum denn nur, die Variable enthält keine Buchstaben/ Umlaute usw.

Popov 18. Feb 2013 19:48

AW: AnsiStartsStr: String-Zahlen, die mit '00' beginnen ?
 
Die Funktion kenne ich nicht, vielleicht weil ich D7 habe. Sowas löse ich es mit if Pos('00', Str) = 1.

lbccaleb 18. Feb 2013 21:26

AW: AnsiStartsStr: String-Zahlen, die mit '00' beginnen ?
 
Mit Pos mach ich es auch, würde in dem Fall aber nicht gehen.
Delphi-Quellcode:
myKundenNr :='23456007341' ;
Würde ja auch True ergeben. Und so wie ich das mitbekommen hab, möchte er nur die ersten beiden Zeichen auf "0" checken?!

Du könntest also auch einfach zusammenkopieren:

Delphi-Quellcode:
if (myKundenNr[1] + myKundenNr[2]) = '00' then
//....
Oder was genau hast du vor? Weil warum nicht mit einem Intger arbeiten?
Dann brauchst du doch nichts umwandeln kannst leiht den Zähler erhöhen usw...

Popov 18. Feb 2013 21:32

AW: AnsiStartsStr: String-Zahlen, die mit '00' beginnen ?
 
Zitat:

Zitat von lbccaleb (Beitrag 1204227)
Würde ja auch True ergeben.

Nicht unbedingt, denn hier wird geprüft ob Pos() = 1 ist.

DeddyH 19. Feb 2013 07:47

AW: AnsiStartsStr: String-Zahlen, die mit '00' beginnen ?
 
Vielleicht stehen da noch andere Zeichen am Anfang des Strings. Hast Du es einmal mit Trim() versucht?
Delphi-Quellcode:
if AnsiStartsStr('00', Trim(myKundenNr)) then

knochen 19. Feb 2013 11:02

AW: AnsiStartsStr: String-Zahlen, die mit '00' beginnen ?
 
Delphi-Quellcode:
if Copy(myKundenNr, 1, 2) = '00' then

Angel4585 19. Feb 2013 11:08

AW: AnsiStartsStr: String-Zahlen, die mit '00' beginnen ?
 
[Complete-OT]
Mich erinnert das grad iwie an das da:http://www.delphipraxis.net/123215-p...umwandeln.html
[/Complete-OT]

lbccaleb 19. Feb 2013 11:17

AW: AnsiStartsStr: String-Zahlen, die mit '00' beginnen ?
 
Na ja nee eigentlich nicht, der Thread ist, ja wie soll man sagen überflüssig^^
Hier scheints ja nun win Problem zu geben, was noch nicht ganz einleuchtend ist woran es liegen könnte, da hat DeddyH schon nicht ganz unrecht, könnten vllt Vorzeichen im Spiel sein, aber warum es dann nur auf ner anderen Maschiene falsch erkannt wird ist auch merkwürdig.

Dazu muss man wohl eher mehr Code sehen, um zu wissen was noch alles passiert...

Angel4585 19. Feb 2013 11:25

AW: AnsiStartsStr: String-Zahlen, die mit '00' beginnen ?
 
Nagut hat mich nur iwie dran erinnert.
Bin grad in der Hilfe auf folgendes gestoßen:
Zitat:

LeftStr gibt die ersten ACount Zeichen des Strings AText zurück.

Anmerkung: Wenn AText ein AnsiString ist und das aktuelle Gebietsschema Multibyte-Zeichen verwendet, gibt LeftStr möglicherweise mehr als ACount Bytes zurück. Wenn eine bestimmte Anzahl Bytes zurückgegeben werden soll, verwenden Sie LeftBStr.

moinmoin 19. Feb 2013 11:38

AW: AnsiStartsStr: String-Zahlen, die mit '00' beginnen ?
 
Für das "Problem" wurden schon ein paar Lösungen vorgeschlagen :thumb:

Für die Lösungen wurde noch kein Problem vorgeschlagen :twisted:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:24 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