EDSCampino Geschrieben 31. März 2010 Teilen Geschrieben 31. März 2010 Guten Morgen, Ich hab da So ein kleines Problem. ich Soll hier eine resourcen datei Duplizieren und diese dann abändern. eingelsen ist die alte Resourcen datei, und die liste mit den Strings die abgeändert werden sollen, beides in jeweils ein Stringarray. alles gut und schön. jetzt will ich durch die Liste durchgehen und immer wenn der string der geändert werden soll auftaucht soll dieser durch den Neuen String ersetzt werden. for(k=0;k<j;k=k+2) { ListeNeu = ZeilenListe.GetAt(k+1); ListeAlt = ZeilenListe.GetAt(k); while(m<ZeilenRes.GetCount()) { CString Res = ZeilenRes.GetAt(m); ListeNeu.Delete(0,3); ListeAlt.Delete(0,3); int n = Res.Replace((LPCTSTR)ListeAlt,(LPCTSTR)ListeNeu); if (n!=0) //DEBUG ANFANG { n++; }//DEBUG ENDE m++; } }[/PHP] Also im Prinzip eine SUCHEN und Ersetzten geschichte. Trotzdem wenn ich das so aufrufe Ersetzt er mir nichts!! Programierumgebung: VS 2005 Ich hoffe ihr Könnt mir weiter helfen =) Danke im vorraus=) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EDSCampino Geschrieben 31. März 2010 Autor Teilen Geschrieben 31. März 2010 Sorry Falsches Topic =) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 31. März 2010 Teilen Geschrieben 31. März 2010 Dein String Res ist eine Kopie des jeweiligen Listeneintrags. Wenn du Res änderst, änderst du an den Strings in der Liste ZeilenRes gar nichts. Die Variable m solltest du wieder zurücksetzen, wenn du einmal durch die Ressourcenliste durch bist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EDSCampino Geschrieben 31. März 2010 Autor Teilen Geschrieben 31. März 2010 for(k=0;k<j;k=k+2) { ListeNeu = ZeilenListe.GetAt(k+1); ListeAlt = ZeilenListe.GetAt(k); ListeNeu.Delete(0,3); ListeAlt.Delete(0,3); while(m<ZeilenRes.GetCount()) { CString Res = ZeilenRes.GetAt(m); int n = Res.Replace((LPCTSTR)ListeAlt,(LPCTSTR)ListeNeu); if (n!=0) { n++; } ZeilenResViz.Add((LPCTSTR) Res); m++; } m=0; } Hab die Aktuelle res in ein Neues Array geschrieben und m auf 0 zurück gesetzt es passiert trotzdem nichts leider danke schon mal für Die Hilfe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 31. März 2010 Teilen Geschrieben 31. März 2010 Hab die Aktuelle res in ein Neues Array geschrieben und m auf 0 zurück gesetzt es passiert trotzdem nichts leiderWas genau passiert nicht? Sind die Strings in der Liste nicht geändert? Und was sollen diese Casts auf LPCTSTR bewirken? Mach die bitte mal raus. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EDSCampino Geschrieben 31. März 2010 Autor Teilen Geschrieben 31. März 2010 so hab die casts rausgenommen, in dem ZeilenResViz steht jetzt genau das selbe wie im ZeilenRes und es steht in ListeAlt und ListeNeu aufjedenfall der wert was ersetzt werden sollund in was ersetzt werden soll, laut debugger Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 31. März 2010 Teilen Geschrieben 31. März 2010 und es steht in ListeAlt und ListeNeu aufjedenfall der wert was ersetzt werden sollund in was ersetzt werden soll, laut debuggerAber kommt das, was in ListeAlt steht, in den durchsuchten Strings vor? Wenn du einen Breakpoint auf n++ legst, wird der angelaufen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EDSCampino Geschrieben 31. März 2010 Autor Teilen Geschrieben 31. März 2010 ja das kommt da oft drin vor und der breakpoint wird nicht angelaufen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 31. März 2010 Teilen Geschrieben 31. März 2010 und der breakpoint wird nicht angelaufenDann ist der Suchstring auch nicht drin. Gib doch mal ein Beispiel für Res, ListeAlt und ListeNeu, wo deiner Meinung nach etwas ersetzt werden sollte. Wir können das ja ohne konkrete Daten nicht nachvollziehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EDSCampino Geschrieben 31. März 2010 Autor Teilen Geschrieben 31. März 2010 Res BEGIN MENUITEM "freies holz Fläche", ID_TOOLS_HOLZFREI_FLAECHE MENUITEM "freies holz Fläche erster Punkt", ID_TOOLS_HOLZFREI_FL1 MENUITEM "freies holz Fläche zweiter Punkt", ID_TOOLS_HOLZFREI_FL2 MENUITEM "freies holz erster Punkt", ID_TOOLS_HOLZFREI_PKT1 MENUITEM "freies holz zweiter Punkt", ID_TOOLS_HOLZFREI_PKT2 MENUITEM "freies holz positionieren", ID_TOOLS_HOLZFREI_POSITION END Liste A: steht für das Wort das ersetzt werden soll und V: steht für das wort in das ersetzt werden soll A: freies holz V: Volumen A: IDR_TEXT1 V: IDR_TEXT2 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 31. März 2010 Teilen Geschrieben 31. März 2010 Folgender Code funktioniert bei mir: CString ListeAlt = "A: freies holz"; CString ListeNeu = "V: Volumen"; ListeNeu.Delete(0,3); ListeAlt.Delete(0,3); CString Res = " MENUITEM \"freies holz Fläche\", ID_TOOLS_HOLZFREI_FLAECHE"; int n = Res.Replace(ListeAlt,ListeNeu); [/code] Bei dir auch? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EDSCampino Geschrieben 31. März 2010 Autor Teilen Geschrieben 31. März 2010 (bearbeitet) Bei mir Leider nicht ;-( er ersetzt immer noch nichts =/ auch nicht wenn ich es hart codiert im code mache also entweder ich hab nen brett vorm kopf oder ich mach was grundlegendes Falsch Bearbeitet 31. März 2010 von EDSCampino Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 31. März 2010 Teilen Geschrieben 31. März 2010 Bei mir Leider nichtAuch nicht in einem komplett neuen Programm? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
EDSCampino Geschrieben 6. April 2010 Autor Teilen Geschrieben 6. April 2010 so Problem gelöst, auf der Rechten seite von ListeAlt und ListeNeu stand noch ein \r\n das man nciht direkt gesehen hat weg getrimmt und nun klappt es =) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.