Autor Beitrag
Maisinator
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167

Win XP HE SP3, Win Vista HP SP2
Delphi ;-)
BeitragVerfasst: 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???

ausblenden 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);   // hier sollte dann eine befehl/procedur einsetzen, die prüft, ob die umwandlung in integer möglich ist 
  idnew:= StrToInt(id1) + StrToInt(id2) - StrToInt(id3); 
  if idnew = 0 then
    result:= 'True'
else
    result:= 'False';
end;
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167

Win XP HE SP3, Win Vista HP SP2
Delphi ;-)
BeitragVerfasst: Sa 11.07.09 16:50 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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???
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167

Win XP HE SP3, Win Vista HP SP2
Delphi ;-)
BeitragVerfasst: Sa 11.07.09 16:57 
user profile iconLexXis hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Sa 11.07.09 17:02 
Eine Variable, die danach deinen Integerwert aufnimmt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  dummy: Integer;
{...}
if TryStrToInt('2', dummy) then
  dummy := dummy + 2
else
  exit;