AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String-Ende mit while finden

Ein Thema von Caps · begonnen am 12. Aug 2020 · letzter Beitrag vom 14. Aug 2020
Antwort Antwort
Seite 1 von 3  1 23      
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#1

String-Ende mit while finden

  Alt 12. Aug 2020, 14:26
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
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: String-Ende mit while finden

  Alt 12. Aug 2020, 14:32
Delphi-Quellcode:
for i := 0 to 65535 do
  if ansistr[i] = AnsiChar(#0) then
    begin
      break;
    end;
so was?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: String-Ende mit while finden

  Alt 12. Aug 2020, 14:32
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
Matthias
Das Leben ist eines der härtesten.

Geändert von matashen (12. Aug 2020 um 14:37 Uhr)
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: String-Ende mit while finden

  Alt 12. Aug 2020, 14:34
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"
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#5

AW: String-Ende mit while finden

  Alt 12. Aug 2020, 14:36
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
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#6

AW: String-Ende mit while finden

  Alt 12. Aug 2020, 14:37
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.
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: String-Ende mit while finden

  Alt 12. Aug 2020, 14:37
while AnsiStr[i] <> AnsiChar(#0) do

sorry wg falschem start index vorhin.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: String-Ende mit while finden

  Alt 12. Aug 2020, 14:38
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)
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#9

AW: String-Ende mit while finden

  Alt 12. Aug 2020, 14:39
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
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#10

AW: String-Ende mit while finden

  Alt 12. Aug 2020, 14:39
Delphi-Quellcode:
i:=0
while i<length(ansistr) do
begin;
 inc(i);
tu irgendwas mit deinem String
end;
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 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