AGB  ·  Datenschutz  ·  Impressum  







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

Fehler bei Dateneingabe

Ein Thema von snboy2010 · begonnen am 18. Jan 2011 · letzter Beitrag vom 21. Jan 2011
 
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#34

AW: Fehler bei Dateneingabe

  Alt 20. Jan 2011, 10:07
Fazit. Nicht nur ich, sondern keiner hier wusste eine richtige Lösung für das Problem. Und nur Tipps oder Ansätze helfen einem Anfänger wie mir nicht wirklich weiter. Aber ist ja auch egal. Trozdem Danke!
Einspruch: Man hat dich mehrfach auf eine Lösungsmöglichkeit hingewiesen. Ein reines "geht nicht" ist keine schöne Fehlerbeschreibung. Da sind selbst die Fehlerangaben seitens Delphi besser (Ja, Delphi beschreibt den gefundenen Fehler, solange er ein Syntax-Fehler ist).
Punkt 2: Hast du zufällig Windows 7 und eine nichtmit Windows 7 kompatible Delphi-Version, die dir somit keine Hilfe anbietet? - Dann schau mal bei http://ref.dp200x.de/ vorbei. Dort kannst du in der universellen Hilfe suchen (Ja, es sind dann auch Sachen dabei, die bei dir nicht funktionieren erden, weil du nicht Delphi XE Architect hast, ist klar).

Zu deinem Problem: Wenn du beide Dezimalzeichen verwenden willst, geht das so erst mal nicht. Zuerst musst du einen Dezimaltrenner definieren, mit dem dein Programm arbeiten soll. Der Einfachheit her nehme ich mal das Komma (","). Wenn du jetzt noch zusätzlich den Punkt (".") unterstützen willst, musst du den Punkt in ein Komma umwandeln. Ansonsten bekommst du aussagekräftige Fehler, die dir sagen, dass eine Zahl mit Punkt keine Flieskommazahl ist. Wie man alle Punkte in Kommas umwandelt hat man dir schon gesagt. Weil ich jetzt zu falu bin, um das wieder rauszusuchen, wo das war sag ich es dir einfach nochmal: neueZahlString := StringReplace(alteZahlString, '.', ',', []); . Dann kannst du dich an das Konvertieren machen (jetzt alles):
Delphi-Quellcode:
procedure Button1Click();
var
  FormatSettings: TFormatsettings;
  neueZahlString: String;
  neueZahlDouble: Double;
begin
  neueZahlString := StringReplace(alteZahlString, '.', ',', []);
  FormatSettings.DecimalSeperator = ",";
  FormatSettings.ThousandsSeperator = " ";

  if not TryIntToStr(neueZahlString, neueZahlDouble, FormatSettings) then
  begin
    ShowMessage("Die eingegebene Zahl ist auch mit Punkt keine gültige Dezimalzahl. Bitte erneut versuchen");
    Exit; // Abbrechen
  end;

  ShowMessageFmt("Die eingegebene Zahl ist eine Dezimalzahl und sie lautet: %1.2f", [neueZahlDouble]);
end;
So: Das kannst du leider nicht 100% mit Copy&Paste in dein Programm einbauen. Aber vom Aufbau her stimmt es. Es ist bestimmt noch der ein oder andere Fehler drin, weil ich gerade kein Delphi zur Hand habe, um alle Parameter zu überprüfen. Aber das sollte ja für dich keine größere Schwirigkeit darstellen (Ich hoffe mal, du weißt was und wo die Programmierhilfe ist).

Bernhard

PS: Irgendwo in den Forenregeln steht (du hast sie ja akzeptieren müssen um hier zu posten), dass keine 100% fertigen Quellcodes gepostet werden dürfen, weil sonst die in den Forenregeln verankerte Eigeninitiative nicht gewährleistet ist.
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
 


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:53 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