Entwickler-Ecke

Sonstiges (Delphi) - in string ein zeichen suchen


imod1992 - Mi 21.05.08 17:27
Titel: in string ein zeichen suchen
hey,

Bitte helft mir schnell muss mit dem Programm heute noch fertig machen :( .
Ich hatte früher eine andere Lösung, die funktioniert hat, dummer weiße
muss ich dass jetzt nicht mit ner TStringlist machen.

Und zwar will ich ein Zeichen in einem string suchen.
Das Problem der "Buffer" (string) wird bis zu 80 zeichen lang,

also

Buffer := Buffer + Char(i);
if buffer.indexOf = (char118) then begin bla bla bla end; // hier soll er dass Zeichen F7 in dem string suchen, wenn ers dann hat den code ausführen. Früher konnte ich noch if buffer = char(118) then .... da jetzt der Buffer mehere Zeichen enthält muss ich ja nach dem Zeichen suchen.

Ich hab leider keine Ahnung wie :( --> Googel suche hat nichts gebracht.

Und wie kann ich nach meheren Zeichen suchen also z.b wenn in dem Buffer F7,F8,F9 ist dann ....

Vielen DAnk im voraus

Mfg Imod1992


MDX - Mi 21.05.08 17:29

Geht das nichtn mit
Pos(......);???


imod1992 - Mi 21.05.08 17:35
Titel: hey
erstmal Danke für die schnelle Antwort,

also du meinst es so?

if pos(buffer) = char(118) then begin

geht leider net:(

Fehler :

[Error] EasyKeylogger.pas(60): E2250 There is no overloaded version of 'Pos' that can be called with these arguments


MDX - Mi 21.05.08 17:38

Wo ist denn die Variable "buffer" gespiechert?


Gausi - Mi 21.05.08 17:40

Pos braucht zwei Parameter. Einer sagt aus, in welchem String gesucht wird, der andere, welcher String gesucht wird. Die Reihenfolge bring ich immer wieder durcheinander - das steht aber in der Hilfe. Der Rückgabewert ist die Position, an der der gesuchte String im durchsuchten String zu finden ist oder, wenn er nicht gefunden wurde, Null


MDX - Mi 21.05.08 17:50

user profile iconGausi hat folgendes geschrieben:
Pos braucht zwei Parameter. Einer sagt aus, in welchem String gesucht wird, der andere, welcher String gesucht wird. Die Reihenfolge bring ich immer wieder durcheinander - das steht aber in der Hilfe. Der Rückgabewert ist die Position, an der der gesuchte String im durchsuchten String zu finden ist oder, wenn er nicht gefunden wurde, Null


Das meinte ich :zwinker:


imod1992 - Mi 21.05.08 17:56
Titel: hey
hey habs mal so gemacht <> bedeutet doch nicht oder?

if pos(buffer, char(118)) <> null then begin Form1.AlphaBlend := false; end;

Das Problem ist ich hab bei meim Fenster AlphaBlend auf true. (Al..vaule auf 0)
also müsste es ja unsichtbar sein ^^ leider ist es dass nicht ich glaube
das liegt daran dass er das Zeichen erkennt (obwohl ichs net gedrückt hab) und dann bei jedem durchlauf
der schleife das AlphaBlend auf false setzt.
Mein nächstes Problem ist das er ja bei jedem durchlauf die F7 erkennt soll aber nur einmal dass Fenster anzeigt wenn F7 gedrückt wird. Kann ich direct nach dem anzeigen die F7 aus dem buffer löschen?
also :
if pos(buffer, char(118)) <> null then begin Form1.AlphaBlend := false; {Buffer.char(118).delte oder wie dass dann gehn soll}end;

Bin dummerweiße auf dm gebiet ein voll noob :(



Delphi Hilfe is bei mir kapput ^^

naja danke für die Hilfe bis jetzt echt nett von euch :)


Gausi - Mi 21.05.08 18:00

Delphi-Hilfe kann sollte man reparieren. :roll:

Ich habe Null geschrieben, weil 0 so am Satzende etwas seltsam aussieht.


imod1992 - Mi 21.05.08 18:12
Titel: funtzt
hey leutz,

vielen Dank für 1A Hilfe echt hammer :)

da durch dass ich die "Null" durch "0" ersetzt habe schein alles zu funktionieren. :)

vielen Dank noch einmal.

Ich werde mich melden wenn ich nicht mehr weiter komm ^^

naja thx und bb


imod1992 - Mi 21.05.08 20:52
Titel: sry hab dich ein Problem
wie kann ich wenn ich mit pos(char(118), buffer) den speicher pfad leeren also aus dem Buffer das F7 zeichen entfernen aber den restlichen inhalt drin lassen`?

Mfg Domi