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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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