Autor |
Beitrag |
Maisinator
      
Beiträge: 167
Win XP HE SP3, Win Vista HP SP2
Delphi ;-)
|
Verfasst: Sa 11.07.09 16:11
hi,
ich hab heute eine procedur erstellt, die mittels ID und username ermittelt, ob man berechtigt ist, das prog zu verwenden. id und username werden in einer textdatei gespeichert und bei jedem start überprüft. jetzt stellt sich mir die frage, was ich in mein programm schreiben muss, damit es überprüft, ob die id eine kombination aus zahlen ist oder da buchstaben drin sind(nur zahlen wäre richtig, aber wenn jemand versucht, eine eigene id mit buchstaben einzugeben würde ja ein fehler erscheinen...)
wie kann ich also feststellen , ob die id aus zahlen besteht???
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function IDCheck : string; var id ,id1, id2, id3: string; idnew: integer; begin id:= configfile.Strings[0]; id1:= Copy(id,1,2); id2:= Copy(id,3,4); id3:= Copy(id,5,6); idnew:= StrToInt(id1) + StrToInt(id2) - StrToInt(id3); if idnew = 0 then result:= 'True' else result:= 'False'; end; |
|
|
LexXis
      
Beiträge: 170
Erhaltene Danke: 3
|
Verfasst: Sa 11.07.09 16:16
TryStrToInt gibt dir aus ob es möglich ist, den String umzuwandeln. Und wandelt ihn nach Möglichkeit sogar gleich um.
mfg
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 11.07.09 16:27
Nur am Rande: Kann es sein, dass du irrtümlich vermutest, dass Copy den Anfangs- und Endindex erwartet? Der letzte Parameter ist die Länge des zu kopierenden Abschnitts, nicht der Endindex.
(Denn deine kopierten Abschnitte überlagern sich.)
Abgesehen davon: Wozu nimmst du drei Teile des Strings, wenn dazwischen gar kein Bindestrich oder so ist?
|
|
Maisinator 
      
Beiträge: 167
Win XP HE SP3, Win Vista HP SP2
Delphi ;-)
|
Verfasst: Sa 11.07.09 16:50
jaenicke hat folgendes geschrieben : | Nur am Rande: Kann es sein, dass du irrtümlich vermutest, dass Copy den Anfangs- und Endindex erwartet? Der letzte Parameter ist die Länge des zu kopierenden Abschnitts, nicht der Endindex.
(Denn deine kopierten Abschnitte überlagern sich.)
Abgesehen davon: Wozu nimmst du drei Teile des Strings, wenn dazwischen gar kein Bindestrich oder so ist? |
ohh, jetzt weiß ich auch, warum das nicht so ganz funktionierte^^
das müsste dann so aussehen oder???
Delphi-Quelltext 1: 2: 3:
| id1:= Copy(id,1,1); id2:= Copy(id,3,1); id3:= Copy(id,5,1); |
ich nehm 3 teile des strings, da ich gucken will, ob die drei teile addiert und subtrahiert = 0 sind. sonst hat eine id ja gar keinen sinn...(mit bindestrichen wär es für meine freunde zu einfach, die id zu knacken...)
Zuletzt bearbeitet von Maisinator am Sa 11.07.09 16:59, insgesamt 2-mal bearbeitet
|
|
Maisinator 
      
Beiträge: 167
Win XP HE SP3, Win Vista HP SP2
Delphi ;-)
|
Verfasst: Sa 11.07.09 16:57
LexXis hat folgendes geschrieben : | TryStrToInt gibt dir aus ob es möglich ist, den String umzuwandeln. Und wandelt ihn nach Möglichkeit sogar gleich um.
mfg |
was müsste ich dann als "value: integer" eingeben???
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Sa 11.07.09 17:02
Eine Variable, die danach deinen Integerwert aufnimmt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| var dummy: Integer;
if TryStrToInt('2', dummy) then dummy := dummy + 2 else exit; |
|
|
|