Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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=)

Geschrieben

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.

Geschrieben

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 :D

Geschrieben

Hab die Aktuelle res in ein Neues Array geschrieben und m auf 0 zurück gesetzt es passiert trotzdem nichts leider

Was 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.

Geschrieben

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

Geschrieben
und es steht in ListeAlt und ListeNeu aufjedenfall der wert was ersetzt werden sollund in was ersetzt werden soll, laut debugger
Aber kommt das, was in ListeAlt steht, in den durchsuchten Strings vor?

Wenn du einen Breakpoint auf n++ legst, wird der angelaufen?

Geschrieben
und der breakpoint wird nicht angelaufen
Dann 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.

Geschrieben

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

Geschrieben

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?

Geschrieben (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 von EDSCampino

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...