Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Text dateien Vergleichen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.02.2005, 13:33 Uhr
Yami



Hallo,
ich habe ein programm geschrieben der zwei texte vergleichen kann.
Es gibt ein Original text datei und eine modifiziert text datei, wenn man nun jetzt in der modifiziert datei ein wort löscht oder hinzufügt erkennt das programm das neue oder gelöschte wort und gibt es in einer anderen text datei aus.

Jetzt trat aber ein vollgendes Problem auf wenn man zwei wörter oder mehrere wörter hintereinander neu einfügt oder löscht, dann erkennt er die wörter nicht das heißt mein programm kann nur immer ein neu eingefügtes oder gelöschtes wort erkennen, meine bitte:

Kann mir jemand helfen mein programm so zu verändern das es auch mit mehreren wörtern geht?? danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.02.2005, 13:36 Uhr
enno-tyrant
Frag nicht!


das programm kann doch den text in den speicher legen und dort (im speicher) immer das hinzugefügte wort in eine variable speichern und aus dem text (im speicher) dieses wort entfernen und das machst du solange bis die texte wieder identisch sind, dann läßt du die die angelegten variablen ausgeben und hast die wörter
--
...um etwas zu verstehen muß man wissen wie es funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.02.2005, 13:39 Uhr
Yami



könntest du es mir mit einem beispiel verständlicher machen, wäre echt nett
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.02.2005, 14:07 Uhr
enno-tyrant
Frag nicht!


ich versuchs mal:

Code:
do
{
getline(m_datei,speicher);  //mod-dateiinhalt in speicher lesen
strcomp(speicher,o_datei);//org-datei und speicher vergleichen
if(dateien nicht gleich){stringvariable+=wort;};
kopiere speicherinhalt ohne das wort in neuen puffer;
lösche alten puffer;
}while(o_datei != speicher);
gib stringvariable aus;


der 'code' ist natürlich nicht compilierbar, siehe es als eine art prototyp
--
...um etwas zu verstehen muß man wissen wie es funktioniert...

Dieser Post wurde am 12.02.2005 um 14:07 Uhr von enno-tyrant editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.02.2005, 14:10 Uhr
Yami



Ich zeige dir mal meinem bisherigen code:

Code:

#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main()
{
const string origName = "Original.txt";
const string modName  = "Mod1.txt";

ifstream original (origName.c_str() );
ifstream modifiziert (modName.c_str() );

string origWort[2];
string modWort[2];
string tmp;
string s[2];
//std::vector<int> vec(10)

while ( modifiziert >> modWort[0] && original >> origWort[0])
{

if (origWort[0] != modWort[0])
{

original >> origWort[1];
modifiziert >> modWort[1];

if (origWort[0] == modWort[1])
{
ofstream out ("hallo");
out<<modWort[0];

modifiziert >> tmp;


}
else if (origWort[1] == modWort[0])
{
ofstream out ("hallo");
out<<origWort[0];

original >> tmp;
}

} //erstes if wird geschloßen
} //erstes while wird geschloßen


while ( original >> origWort[0] ) //Wenn am ende ein wort gelöscht wurde
{
ofstream out ("hallo");
out<<origWort[0];
}




} //die ganze geschichte wird geschloßen



Wie soll ich das den nun so reinpacken?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.02.2005, 14:20 Uhr
enno-tyrant
Frag nicht!


ist doch gut, setze alles zwischen:

while ( modifiziert >> modWort[0] && original >> origWort[0])

und

out<<origWort[0]; }

in eine neue schleife mit der abbruchbedinung if(origWort == modWort);

sowas in der art
--
...um etwas zu verstehen muß man wissen wie es funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.02.2005, 18:20 Uhr
~Yami
Gast


Also ich habe das fast verstanden, verstehe bloß nicht diesen schritt den ich machen muss:

Zitat von Verfasser:


Code:

if(dateien nicht gleich){stringvariable+=wort;};
kopiere speicherinhalt ohne das wort in neuen puffer;
lösche alten puffer;





Kannst du mir das bitte genauer erklären danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: