CStrings vergleichen
-
Hallo,
ich will prüfen, ob diverse CStrings in anderen CStrings vorkommen:
Ich habe ca. 10 Suchbegriffe, welche ich Fest im Programm definieren will.
Dazu brauche ich irgend ein CString Array???
Andere CStrings aus einem Struct sollen nun druchsucht werden, ob diese 10 Begriffe darin vorkommen.Ich stelle es mir so vor:
Solange Elemente im Such-String-Array vorhanden sind{ Wenn mein-Xter-SuchString in meinstruct[i].meinCString vorkommt{ ... } }
Ich hab nur noch nicht rausgefunden, wie:
1. Ich ein Array aus CStrings anlege
2. Ich einen CString in einem andern CString finde.Danke im voraus.
mfg
trequ
-
Hallo,
meinst du sowas?
CString arr[10]={string1,string2,string3,string4,string5,...}; for (int i=0;i<10;i++) { if (arr[i]=="suche") { //mach was } }
MFG TaccoGo
-
Hallo,
fast, aber nicht ganz:
CString arr[]; // Anzahl unbekannt arr[0] = "Hallo"; arr[1] = "Test"; arr[...] = ...; Wiederhole für jedes Element, welches in arr[] vorkommt{ Wiederhole für jedes Element, welches in meinemStruct vorkommt{ Wenn meinStruct[j].MeinString in arr[i] vorhanden ist{ //Mach Was } } }
Ich will nicht einfach nur vergleichen. Ich suche einen Teil:
z.B.CString test1 = "Hallo, dies ist ein Test" CString test2 = "dies" Suche test2 in test1 -> TRUE CString test1 = "Hallo, dies ist ein anderer Test" CString test2 = "Hans Dampf" Suche test2 in test1 -> FALSE
Weiterhin habe ich mit dem Arrays ein Problem:
Das ganze ist dafür bestimmt, Laufwerke zu suchen.
Ich kriege aus einer Funktion z.B. :
"USB 2.0 Cardreader CF-Device ABC",
"USB 2.0 Cardreader SM-Device ABC",
"..."
Das steht bei mir im Struct (drive[i].drivehardware)
wobei i für A:\ = 0, B:\ = 1, C:\ = 2 ... etc ist.Jetzt will ich es jetzt einem Kartenleser zuordnen:
Kartenleser Modell ABC Suchbegriff [0] = "CF-Device ABC"
Kartenleser Modell ABC Suchbegriff [1] = "SM-Device ABC"
Kartenleser Modell XYZ Suchbegriff [0] = "CF-Device XYZ"
Kartenleser Modell XYZ Suchbegriff [1] = "SM-Device XYZ"Ich hoffe, ihr hab das Problem verstanden, ich weiß nicht so recht, wie ich das noch erklären soll.
mfg
trequ
-
CString::Find und CStringArray solltest du dir anschauen!
-
uh lang ist's her
CString bietet doch einige suchfunktionen an. Gibts da keine entsprechende?Wenn alles nichts hilft, dann "auf die harte tour", oder fuer die die in einer sprache arbeiten wo es div. lösungen nicht schon gibt
pseudo code string = "hallo du, na alles fit im schritt?" suche = "all" // oder fit 1. schleife ( i = 0 bis string.getlenght ) und abbruchbedingung noch nicht 2. von suche ersten charakter nehmen "all" also char = a suche ist char = momentan ites element Wenn ja dann ist i-tes + 1 auch 2tes element von char ( also "l" ) wenn ja // weitermachen, bis letzes element auch übereinstimmt //abbruchbedingung setzen auf TRUE z.b. wenn nein einmal vorkommt dann i-tes + 1 vergleichen lassen wieder mit char dem ersten also "a"
===
vergleicht also "hallo du, na alles fit im schritt?" und "all"
=n == nein =j == jah =n
a =j // sehr gut erstes gefunden
l = j // hehe
l = j // war ja letztes schon hehe, gotcha
schluss
vergleicht nur die exakte zeichenkette, das all in alles auch vorkommt bleibt unberücksichtigt. wenn man exaktes wort sucht, muss man die leerzeichen beachtenaber wie gesagt. mach mal
CString test; test. // jetzt muesste er dir ja die ganzen funktionen anbieten oder mach mal CString // auf CString drauf und F1 drücken
wer suchtet der findet