Char + StrPos , ich tick gleich aus !!!
-
Hi,
kann jemand das Ding hier zum laufen bringen ? ich bin echt zu blöd.
Habs auch schon mit Zeigern probiert geht nix.char Zeichen[9] = {'<','>',':','"','/','\\','|','*','?'}; unsigned char ANZ = sizeof(Zeichen)/sizeof(Zeichen[0]); //DIE ANZAHL DER ELEMENTE IN DEM ARRAY //char *Zeiger = 0; //Zeigervariable //Zeiger = Zeichen; //Zeigervariable als Arrayvariable while(ANZ != 0) { ANZ--; if(StrPos("finde:mich", Zeichen[ANZ])!= NULL) //hier kackt er immer ab ! { ShowMessage("STOP"); break; } }
-
char Zeichen[9] = {'<','>',':','"','/','\\','|','*','?'}; unsigned char ANZ = sizeof(Zeichen)/sizeof(Zeichen[0]); //DIE ANZAHL DER ELEMENTE IN DEM ARRAY String findemich="finde:mich"; while(ANZ) { ANZ--; if(findemich.Pos(Zeichen[ANZ])) { ShowMessage("STOP"); break; } }
-
hi,
OK, läuft !
nur schade das es nun über AnsiString läuft.
bye
-
@Bernd_
Poste doch nächstes mal einfach die Fehlermeldung mit, denn dann ist das Problem viel einfacher einzugrenzen. Außerdem ist deine Fehlerbeschreibung im allgemeinen sehr unzureichend: wann "kackt" er denn ab? beim Kompilieren? beim Ausführen?ne andere Lösung:
AnsiString Zeichen[9] = {"<",">",":","\"","/","\\","|","*","?"}; int ANZ = sizeof(Zeichen)/sizeof(Zeichen[0]); //DIE ANZAHL DER ELEMENTE IN DEM ARRAY while(ANZ != 0) { if(StrPos("finde:mich", Zeichen1[ANZ].c_str())!= NULL) { ShowMessage("STOP"); break; } ANZ--; //das Dekrementieren von ANZ solltest du nach hinten legen, sonst fehlt das letzte Zeichen }
-
//das Dekrementieren von ANZ solltest du nach hinten legen, sonst fehlt das letzte Zeichen
Das ist so nicht richtig , ANZ muss zuerst veringert werden.
Ansonsten läuft das Ding, aber leider wieder nur über AnsiString.
bye
-
Meinst du sowas ?
char Zeichen[] = {'<','>',':','"','/','\\','|','*','?'}; unsigned char anz = sizeof(Zeichen)/sizeof(Zeichen[0]); while(anz) { anz--; if (strchr("finde:mich", Zeichen[anz])) { ShowMessage("STOP"); break; } }
StrPos braucht einen nullterminierten String als Suchparameter, kein Zeichen.
-
Hi,
ja doch ich bin begeistert funktioniert echt edel. Danke !
Die Funktion StrPos brauch also einen Nullterminierten String ?
OK kann man ja einfügen am Ende '\0'.char Zeichen[10] = {'<','>',':','"','/','\\','|','*','?','\0'};
bye
-
ich tick gleich aus !!!
oô
-
hi,
ich nochmal ,
hier noch ne Version mit StrPos.char Zeichen[] = {'<','>',':','"','/','\\','|','*','?'}; char *temp = "\0"; unsigned char anz = sizeof(Zeichen)/sizeof(Zeichen[0]); while(anz) { anz--; temp[0] = Zeichen[anz]; if (StrPos("finde:mich", temp)) { ShowMessage("STOP"); break; } }
-
Bernd_ schrieb:
hi,
OK, läuft !
nur schade das es nun über AnsiString läuft.
bye
Ja, das ist nunmal die Klasse, die im Builder mit der VCL für Zeichenketten fast ausschließlich verwendung findet.
-
Ja, das ist nunmal die Klasse, die im Builder mit der VCL für Zeichenketten fast ausschließlich verwendung findet.
Hast ja recht, ich aarbeite ausschliesslich mit Borland im VCL
ich versuche trotzdem bei mit machbaren routinen wie diese hier
im Standard C++ zu programmieren.bye