AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit EConvertError

Ein Thema von Socke_SG · begonnen am 3. Apr 2008 · letzter Beitrag vom 4. Apr 2008
Antwort Antwort
Socke_SG

Registriert seit: 31. Mär 2008
47 Beiträge
 
#1

Problem mit EConvertError

  Alt 3. Apr 2008, 23:16
Hi zusammen,

hab da mal ne Frage zur Konvertierung von strings. Ich habe einen String k, bei dem ich ganz bestimmte Stellen herausnehmen möchte und in einen edit-Text packen will. Das alleine Klappt auch wunderbar. Nur dann versuche ich diesen Text im Edit-Feld in eine Integerzahl zu verwandeln (der Text im Feld sind zahlen) und dann schmeisst der mir immer EConvertError raus mit der Begründung, dass ' ' kein gültiger Integerwert sei. Hier ist die Stelle, die Probleme macht...

edit2.Text:=(k[Length(k)-10]+k[Length(k)-9]+k[length(k)-8]);
edit3.Text:=k[Length(k)-6]+k[Length(k)-5]+k[length(k)-4];
Image3.Visible:=true;
posx:=StrToInt(Edit2.text);

Wäre dankbar für ne schnelle Antwort
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Problem mit EConvertError

  Alt 3. Apr 2008, 23:22
Naja, ein leerer String bzw. aus Leerzeichen oder auch nur mit Leerzeichen ist nunmal kein Integer und somit ungültig. Somit hat er doch vollkommen Recht, was ist nun das eigentliche Problem bzw. was für eine Lösung stellst du dir vor?

Ansonsten mal ein paar Begriffe für die Hilfe: Delphi-Referenz durchsuchenTrim(), Delphi-Referenz durchsuchenTryStrToInt(), Delphi-Referenz durchsuchenStrToIntDef()
  Mit Zitat antworten Zitat
Socke_SG

Registriert seit: 31. Mär 2008
47 Beiträge
 
#3

Re: Problem mit EConvertError

  Alt 3. Apr 2008, 23:25
Das Problem ist, das das Edit-Feld, aus dem er konvertieren soll ja nicht leer ist...

edit2.Text:=(k[Length(k)-10]+k[Length(k)-9]+k[length(k)-8]);

Da kommen also die Buchtstaben/Ziffern des Strings k rein...und die zeigt er mir ja auch in dem Feld an. Aber das Konvertieren

posx:=StrToInt(Edit2.text); //wobei posx integer ist

funktioniert nicht... Das Feld ist nun mal nicht leer
  Mit Zitat antworten Zitat
Socke_SG

Registriert seit: 31. Mär 2008
47 Beiträge
 
#4

Re: Problem mit EConvertError

  Alt 3. Apr 2008, 23:31
Hey klasse mit StrToIntDef klappts!

Vielen Dank!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Problem mit EConvertError

  Alt 3. Apr 2008, 23:31
Zitat von Socke_SG:
Da kommen also die Buchtstaben/Ziffern des Strings k rein...und die zeigt er mir ja auch in dem Feld an.
Ein Buchstabe ist keine Ziffer und somit nicht konvertierbar.

Zitat von Socke_SG:
Das Feld ist nun mal nicht leer
Ein String aus Leerzeichen ist nicht leer, stimmt, aber auch keine Zahl! Was steht definitiv in dem Edit1 drin? Die oben von dir gepostete Fehlermeldung enthält im Normalfall den String, den er konvertieren soll. Das ist oben bei dir definitiv keine Zahl gewesen sondern " " - und das ist eindeutig keine Zahl.

Zitat von Socke_SG:
Hey klasse mit StrToIntDef klappts!
Nur bedingt, da er keinen Fehler bringt, wenn er es nicht konvertieren kann: sprich wenn es keine Zahl ist. Statt dessen gibt er den angegebenen Defaut Wert zurück. Damit wird nur der Fehler unterdrückt aber nicht im eigentlichen Sinne beseitigt.
  Mit Zitat antworten Zitat
Socke_SG

Registriert seit: 31. Mär 2008
47 Beiträge
 
#6

Re: Problem mit EConvertError

  Alt 4. Apr 2008, 00:32
Ok, mag sein. Aber für meine Zwecke reicht es.

Aber im Edit2.Text steht halt z.B. 123 drin wobei die 1 von k[Length(k)-10] kommt usw.

Da sind dann doch keine Leerzeichen
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: Problem mit EConvertError

  Alt 4. Apr 2008, 00:41
Zitat von Socke_SG:
Aber im Edit2.Text steht halt z.B. 123 drin wobei die 1 von k[Length(k)-10] kommt usw.

Da sind dann doch keine Leerzeichen
Nein, definitiv nicht, sonst würde ja die Meldung nicht kommen. Ich vermute eher das er durch andere Aufrufe und OnChange Ereignisse in diese Procedure reinkommt obwohl k keinen wirklichen bzw. richtigen Inhalt hat.

Auch würde ich fast eine Zugriffsverletzung vermuten. Hast du die Bereichs- und Überlaufprüfung in deinem Projekt bei den Compiler-Optionen aktiviert? Wenn nein, mach dies mal und erstell das gesamte Projekt neu. Dann würde mich mal interessieren ob es dann nicht sogar ein paar Exceptions mehr gibt und uns andere Fehler aufzeigt.

Und zu meiner Vermutung das er in die o.g. Procedure zu einem anderen Zeitpunkt reinkommt: Schonmal einen Breakpoint in die Methode gesetzt und den Inhalt von Edit2.Text mit dem Debugger betrachtet?
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:26 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