Hallo Leute, ich stehe irgendwie auf dem Schlauch. Ich bekomme immer beim Compelieren eine Warnmeldung mit Abbruch : External SigSegv wenn ich den Code verwende: txt:string; a_byte: byte; txt:='Das ist ein Test'; a_byte=ord(txt[1]); (Hier kommt dann die Fehlermeldung) kann ich nicht einfach mit txt[x] auf die xte Stelle vom String zugreifen und die Ascii-Zahl vom Buchstaben mit 'ord' ermitteln? Habe schon versucht den einen Buchstaben in eine Variable vom Typ Char zu übergeben, aber das klappt nicht weil 'txt' ein AnsiString ist.....was mache ich falsch? Ich will doch nur von einem String einen einzelnen Buchstaben rauslösen und dessen Stelle in der ASCII-Tabelle ermitteln....vielen Dank
Wenn Du es so schreibst wie oben angegeben, wird es nicht funktionieren. Lazarus ist doch Pascal, und für die Zuweisung wird in Pascal ":=" verwendet. Hast Du ja auch bei der Stringzuweisung.
Wobei, wenn ich mich so erinnere -- ganz zu Anfang deines Beispiels steht ja wohl zunächst das Schlüsselwort VAR. Und dann muss da doch auch ein BEGIN stehen, oder hat Lazarus das nun doch optional gemacht? Warum Du heute noch Pascal verwenden magst, oder warum du nicht mal kurz "delphi string to char" bei Google eingibst must du selber wissen.
Danke Leute, aber über die Syntax braucht ihr euch keinen Kopf zu machen, die stimmt natürlich im Programm ;)....und meine Frage richtet sich nur an Leute mit Erfahrung in Lazarus ;)
Karl schrieb: > aber über die Syntax braucht ihr euch keinen Kopf zu > machen, die stimmt natürlich im Programm ; So macht man sich überaus beliebt: etwas falsch schreiben und dann diejenigen, die darauf hinweisen, in unfreundlichem Ton zurechtzuweisen, das sollte sie nicht beachten. Karl schrieb: > meine Frage richtet > sich nur an Leute mit Erfahrung in Lazarus ; Noch beliebter: vorschreiben wer antworten darf und wer nicht. Geht's noch? Es steckt da zwar noch ein weiterer Fehler drin, aber wer weiss schon ob man das schreiben darf. Dann such sie eben selber. Georg
und der nächste Troll, der verpeilt um was es geht aber sich moralisch berufen sieht, fachfremd aber mit erhobenem Finger zu antworten...ich habe nichts falsch geschrieben, der Compiler würde solche Fehler erkennen und darauf hinweisen. ergo käme gar nicht erst der Abbruch. .....2 und natürlich möchten bitte nur die Leute antworten, die wissen um was es gehtm Ubd dazu gehörst du definitiv nicht, wie du eben eindrucksvoll gezeigt hast....also provoziere nicht bzw trolle woanders. danke
Als ich "beim Compelieren" las hatte ich ja schon so eine Ahnung...
tja, und als ich "wenn ich mich erinnere" und der Hinweis auf var und begin, hatte ich keine Ahnung, ich wußte, daß du nix beitragen kannst so, das Problem ist nicht weg zu bekommen, eigentlich sollte es problemlos mit txt[x] zu hand haben sein. Ist es aber nicht. Auch kar: char; kar:=txt[1]; funktioniert nicht. Es kommt keine Compiler/Debugger-Fehlermeldung, sondern direkt der Laufzeitfehler SigSegv....es muß da also einen Bug in Lazarus bei mir geben. Neueste Version 1.6.2 32-bit mit einem frischen XP SP3...
Dann poste doch endlich mal den kompletten Code, denn an dem unvollständigen Schnipsel den Du da geschrieben hast liegt es definitiv nicht, der Fehler liegt ganz wo anders. Vermutung: Du führst die zweite Zeile vor der ersten aus (die String Variable enthält noch gar nichts (nil oder leerer String)) weil das was Du da gepostet hast nicht dem enspricht was Du in Wirklichkeit verwendest. Also zeig das komplette Programm. Oder nimm einfach mal den Debugger und steppe durch, dann siehst Du es selbst.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.