Hi leute,
ich bin neu hier und ich hab mal gleich ein kleines Problem:
erstmal zu dem Projekt, an dem ich grad arbeite:
ich versuche gerade einen Taschenrechner mit stringanalyse zu erstellen.
damit es leichter zu rechnen ist, will ich den string (die formel) in einen Array umwandeln.
dabei ist dann jeder zweite eintrag eine Zahl und der rest sind dann operatoren.
da es leider kann ich den Rückgabewert einer funktion nicht als array of string definieren.
deshalb habe ich einen eigenen Typ definiert:
type TStringArray = array of String;
um den array zu erstellen benutze ich diese Funktion:
Delphi-Quellcode:
function getStringArray(term : string):TStringArray ;
var stelle : char;
i, platz :integer;
komponennte :string;
zahlarray : set of char;
resultarray : TStringArray;
begin
// resultarray := array [0..10] of string;
i := 1;
platz := 0;
stelle := ' ';
zahlarray := ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
while stelle <> '' do
begin
komponennte := '';
while term[i] in zahlarray do
begin
stelle := term[i];
komponennte := komponennte + stelle;
i := i + 1
end;
resultarray[platz] := komponennte;
platz := platz + 1;
while not (term[i] in zahlarray) do
begin
stelle := term[i];
komponennte := komponennte + stelle;
i := i + 1
end;
resultarray[platz] := komponennte;
platz := platz + 1
end;
result := resultarray
end;
es lässt sich kompilieren, aber es kommt in der Zeile
resultarray[platz] := komponennte;
beim durchlaufen ein Fehler:
Zitat:
Zugriffsverletzung bei Adresse 004042A0 in Modul 'Taschenrechner.exe'.Schreiben von Adresse 00000000
ich hatte mir gedacht dass es davon kommt, dass ich die länge vom Array nicht definiert habe. also habe ich die kommentierte Zeile eingefügt. wenn ich diese einfüge, kommt beim kompilieren der Fehler
Zitat:
Ausdruck erwartet, aber array gefunden.
außerdem weiß ich nicht von forne herein, wie lang der array wird. es soll ja nicht jedes Zeichen in den Array rein.
und hinterher fürs rechnen muss der array komplett voll sein.
ich hoffe, mir kann einer von euch helfen.
xelax90