Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Warum stürzt es immer ab? (https://www.delphipraxis.net/125224-warum-stuerzt-es-immer-ab.html)

reyka 2. Dez 2008 19:57


Warum stürzt es immer ab?
 
Ich will mit folgendem Code meinen String nach Zahlen durchsuchen, jedoch stürzt das Progamm ab sobald man den Button clickt (Edit1.text muss Inhalt haben.)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var

l,j,i,x : integer;
s: string;
begin
j:=1;
s:=edit1.text;
l:= length(s);
for i:=0 to l - 1 do
begin
    repeat
    if s[i] in ['0'..'9'] then
       z[j]:=z[j]+s[i];
    until
         s[i]='';
         j:=j+1;

end;
end;
end.
was mach ich da falsch? =(

SirThornberry 2. Dez 2008 19:58

Re: Warum stürzt es immer ab?
 
was heißt abstürzen? Welche Fehlermeldung bekommst du?
Verstehst du den Quelltext eigentlich selbst?

Unter welchen Umständen meinst du das folgende Anweisung eintritt?
Delphi-Quellcode:
until s[i]='';
Ich glaube wenn du den Quelltext entsprechend des offiziellen Styleguides einrückst findest du eher den Fehler.

mkinzler 2. Dez 2008 19:59

Re: Warum stürzt es immer ab?
 
Strings beginnen bei 1
Delphi-Quellcode:
for i:=1 to l do

reyka 2. Dez 2008 20:04

Re: Warum stürzt es immer ab?
 
Zitat:

was heißt abstürzen? Welche Fehlermeldung bekommst du?
es stürzt ohne Fehlermeldung ab


Zitat:

Zitat von mkinzler
Strings beginnen bei 1
Delphi-Quellcode:
for i:=1 to l do

Ok damit stürzt es nich ab sobald etwas drin steht, aber sobald mehr als 1 Zeichen im String vorhanden sind stürzt es wieder ab.

Zitat:

Unter welchen Umständen meinst du das folgende Anweisung eintritt?
Delphi-Quellcode:
until s[i]='';

Sobald ein Leerzeichen "erkannt" wird

mkinzler 2. Dez 2008 20:13

Re: Warum stürzt es immer ab?
 
Delphi-Quellcode:
until s[i]='' or i = l;
Oder die Position des Leerzeichens vorher ermitteln und die Grenze der Schleife entsprechend setzen

Forlan 2. Dez 2008 20:15

Re: Warum stürzt es immer ab?
 
Zitat:

Zitat von reyka
Zitat:

was heißt abstürzen? Welche Fehlermeldung bekommst du?
es stürzt ohne Fehlermeldung ab


Zitat:

Zitat von mkinzler
Strings beginnen bei 1
Delphi-Quellcode:
for i:=1 to l do

Ok damit stürzt es nich ab sobald etwas drin steht, aber sobald mehr als 1 Zeichen im String vorhanden sind stürzt es wieder ab.

Zitat:

Unter welchen Umständen meinst du das folgende Anweisung eintritt?
Delphi-Quellcode:
until s[i]='';

Sobald ein Leerzeichen "erkannt" wird

wäre ein Leerzeichen nicht dies hier?:
Delphi-Quellcode:
 until s[i]=' ';
und nicht
Delphi-Quellcode:
s[i]=''

reyka 2. Dez 2008 20:23

Re: Warum stürzt es immer ab?
 
[quote="Forlan"]
Zitat:

Zitat von reyka
Zitat:

was heißt abstürzen? Welche Fehlermeldung bekommst du?
wäre ein Leerzeichen nicht dies hier?:
Delphi-Quellcode:
 until s[i]=' ';
und nicht
Delphi-Quellcode:
s[i]=''

macht kein Unterschied stürzt es auch ab wenn ich nu '12' eingebe sobald mehr als 1 zeichen vorhanden ist -> Absturz

mkinzler 2. Dez 2008 20:26

Re: Warum stürzt es immer ab?
 
Klar, das es über die grenze geht, deshalb auch Abbruch bei Stringende

reyka 2. Dez 2008 20:28

Re: Warum stürzt es immer ab?
 
Zitat:

Zitat von mkinzler
Klar, das es über die grenze geht, deshalb auch Abbruch bei Stringende

:wiejetzt: was meinste damit?

lbccaleb 2. Dez 2008 20:29

Re: Warum stürzt es immer ab?
 
Was ist denn "z"??


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