Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   String-Ende mit while finden (https://www.delphipraxis.net/205210-string-ende-mit-while-finden.html)

Caps 12. Aug 2020 13:26

String-Ende mit while finden
 
Hallo,

ich glaube ich stehe auf dem Schlauch.
Ich habe nirgends Infos gefunden, womit ein AnsiString nun terminiert wird, oder wo die Länge zu finden ist.
Ich würde gern einen String Byte für Byte durchlaufen, aber mit while, bis ich das Ende erreicht habe.

Die Frage ist nun, wie ich erkenne, dass ich das Ende erreicht habe(?).

Ich möchte nicht zuerst die Länge abfragen und dann den Laufindex damit vergleichen, sondern ich möchte eine Bedingung wissen, wie ich das Ende erkennen kann. Gibt es sowas?

lg Caps

KodeZwerg 12. Aug 2020 13:32

AW: String-Ende mit while finden
 
Delphi-Quellcode:
for i := 0 to 65535 do
  if ansistr[i] = AnsiChar(#0) then
    begin
      break;
    end;
so was?

matashen 12. Aug 2020 13:32

AW: String-Ende mit while finden
 
Hallo,

wie wärs mit

length(deinString)


Delphi-Quellcode:
var I:Integer

for i:=1 to length(deinString) do irgendwas
order bei neurem Delphi

deinstring.length

EDIT: geht nicht mit AnsiString


Gruß Matthias

matashen 12. Aug 2020 13:34

AW: String-Ende mit while finden
 
Zitat:

Zitat von KodeZwerg (Beitrag 1471679)
Delphi-Quellcode:
for i := 0 to 65535 do
  if ansistr[i] = AnsiChar(#0) then
    begin
      break;
    end;
so was?

laut Delphi Wiki
http://docwiki.embarcadero.com/Libra...tem.AnsiString
"Die Indizierung von AnsiString beginnt bei 1"

Caps 12. Aug 2020 13:36

AW: String-Ende mit while finden
 
Ich würde das gerne mit while erreichen.
Ich müsste bloß wissen, wie die Bedingung für das Ende lautet.

Kann es sein, dass lange Strings doch mit #0 terminiert sind?
Gilt dann mein_string [length(mein_string)+1] = #0? Oder gibt es da einen Zugriffsfehler?

lg Caps

Caps 12. Aug 2020 13:37

AW: String-Ende mit while finden
 
Zitat:

Zitat von matashen (Beitrag 1471681)
Zitat:

Zitat von KodeZwerg (Beitrag 1471679)
Delphi-Quellcode:
for i := 0 to 65535 do
  if ansistr[i] = AnsiChar(#0) then
    begin
      break;
    end;
so was?

laut Delphi Wiki
http://docwiki.embarcadero.com/Libra...tem.AnsiString
"Die Indizierung von AnsiString beginnt bei 1"

Ah, Du prüfst mit #0, ok.
Nur die Länge 65535 ist zu kurz. Meine Strings sind wesentlich länger.

KodeZwerg 12. Aug 2020 13:37

AW: String-Ende mit while finden
 
Delphi-Quellcode:
while AnsiStr[i] <> AnsiChar(#0) do


sorry wg falschem start index vorhin.

matashen 12. Aug 2020 13:38

AW: String-Ende mit while finden
 
Zitat:

Zitat von Caps (Beitrag 1471683)
Zitat:

Zitat von matashen (Beitrag 1471681)
Zitat:

Zitat von KodeZwerg (Beitrag 1471679)
Delphi-Quellcode:
for i := 0 to 65535 do
  if ansistr[i] = AnsiChar(#0) then
    begin
      break;
    end;
so was?

laut Delphi Wiki
http://docwiki.embarcadero.com/Libra...tem.AnsiString
"Die Indizierung von AnsiString beginnt bei 1"

Ah, Du prüfst mit #0, ok.
Nur die Länge 65535 ist zu kurz. Meine Strings sind wesentlich länger.

Dann nimm halt Length(ansistr)

Caps 12. Aug 2020 13:39

AW: String-Ende mit while finden
 
Ok, danke, ich probiere das mit #0.
Das war die Information, die sich in der Delphi-Hilfe ein wenig versteckt ^^.

Danke und Grüße!
Caps

matashen 12. Aug 2020 13:39

AW: String-Ende mit while finden
 
Delphi-Quellcode:
i:=0
while i<length(ansistr) do
begin;
 inc(i);
tu irgendwas mit deinem String
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 Uhr.
Seite 1 von 3  1 23      

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