Autor |
Beitrag |
D. Annies
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Fr 23.08.13 08:07
Hi, Delpher,
warum gibt es zur Laufzeit hier eine Fehlermeldung?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| if T_SL.FieldByName('gebdat').DataType = ftString then begin Q_SL.SQL.Text := Format('select Ident_Nr, Name, Vorname, Klasse, Geschlecht, Gebdat, Telefon from "%s" ' + 'where gebdat like "%s" ' + 'order by Klasse, Name, Vorname', [TbName, TgMos]); showmessage(Q_SL.SQL.Text); Q_SL.Open; praefix := format('%.02d', [TgMos]) + '_'; <--- an dieser Stelle. TgMos ist String end; |
Die Fehlermeldung lautet: EConvertError Format '%02d' ungültig oder nicht kompatibel mit Argument
Danke für Hilfe,
Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
WasWeißDennIch
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: Fr 23.08.13 08:20
Die Antwort hast Du ja selbst gegeben: TgMos ist ein String, für %d brauchst Du aber eine ganze Zahl. Sollte TgMos eine solche darstellen, musst Du sie zuerst umwandeln.
Delphi-Quelltext 1:
| praefix := format('%.02d_', [StrToInt(TgMos)]); |
Für diesen Beitrag haben gedankt: D. Annies
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Fr 23.08.13 08:50
Danke, schon besser,
aber die Fehlermeldung ist noch da.
Ich versuche ja, z.B. den String 23.08. umzuwandeln und da hakt es noch.
Kannst du noch einmal weiter helfen?
LG, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
WasWeißDennIch
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: Fr 23.08.13 08:55
Du hast da ein Datum ohne Jahresangabe, wenn ich das richtig sehe. Was soll denn am Ende herauskommen? Suchst Du evtl. eher FormatDateTime?
|
|
Gammatester
      
Beiträge: 328
Erhaltene Danke: 101
|
Verfasst: Fr 23.08.13 08:59
D. Annies hat folgendes geschrieben : | Ich versuche ja, z.B. den String 23.08. umzuwandeln |
Was ist das? Ein Datum? Wenn es 23.08 wäre, ist eh StrToInt völlig ungeeignet. Nimm StrToFloat (aber dann kannst Du eigentlich gleich FormatFloat benutzen). Wenn der Punkt hinter der 8 kein Zufall/Artefakt ist, wirst Du auch dann wahrscheinlich Probleme haben.
Für diesen Beitrag haben gedankt: D. Annies
|
|
jaenicke
      
Beiträge: 19325
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 23.08.13 09:49
D. Annies hat folgendes geschrieben : | Ich versuche ja, z.B. den String 23.08. umzuwandeln und da hakt es noch. |
Worin denn umzuwandeln? In einen Integerwert? Suchst du vielleicht DayOf?
docwiki.embarcadero....stem.DateUtils.DayOf
Und woher kommt der String eigentlich? Wenn du es wie WasWeißDennIch meinte als String brauchst, kannst du das nicht gleich so formatieren?
Für diesen Beitrag haben gedankt: D. Annies
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Fr 23.08.13 11:57
Hi,
ich will den Geburtstag einer Person erkennen können, also unabhängig vom Jahr.
Bisher hatte ich natürlich auch den Datentyp Date dafür vorgesehen. Aber meine
Schule hat mal wieder "professionell" [ha, ha] rumgebastelt und deshalb entstand
mein heutiges String-Problem.
LG, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Fr 23.08.13 12:51
Meintest du vielleicht sowas?
Delphi-Quelltext 1: 2: 3:
| DecimalSeparator := '.'; TgMos := '23.08'; praefix := format('%2.2f', [StrToFloat(TgMos)]); |
Ist nur ein Code-Fragment. Du solltest natürlich hinterher den DecimalSeparator wieder auf den richtigen Wert setzen.
Für diesen Beitrag haben gedankt: D. Annies
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Fr 23.08.13 14:44
Hi, Delpher,
einmal festhalten: ich habe jetzt geprüft, wo die Variable praefix im Prg vorkommt: nur in dieser
Prozedur! Ich habe sie gelöscht und gut war's.
So kann's gehen. Danke (mal wieder) für eure Mühe
Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
WasWeißDennIch
      
Beiträge: 653
Erhaltene Danke: 160
|
Verfasst: Fr 23.08.13 14:47
Für diesen Beitrag haben gedankt: D. Annies
|
|