Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Suchen von Dateiinhalten

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
13.05.2003, 09:47 Uhr
cppanfang



Auf Wunsch von einen User schreibe ich jetzt nochmal mein Problem

Ich habe eine Programmgeschieben was ein Deutsches Wort und die dazugehörige Englische Überstzung in einer Datei speichert.

Das kann ich mit dem Befehl

ofstrem out ("DATEINAME", ios::app);

Aber nun zu meinen Problem:

Wenn ich die Datei öffne und mir eine Übersetzung raussuche Durchsucht mein Programm nur die erste Zeile meine Datei.

Hoffe das sich einer main Problem zu Herzen nimmt.

Gruß cppanfang
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.05.2003, 09:51 Uhr
mastertango



für den Fall das es eine Textdatei ist hilft dir vielleicht folgendes weiter

while (fgets(cInputart,50,fArtikel)!=NULL)
{
bla bla bla
}

Gruß
MAster
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.05.2003, 09:59 Uhr
virtual
Sexiest Bit alive
(Operator)


fgets geht nicht mit streams zusammen...
Ich kenne nach wie vor Deinen Code nicht, aber du beziehst dich wohl auf folgenden Thread:www.fun-soft.de/index.php?file=/forum/showtopic.php?threadid=2316&time=1052812602
Der vorschlag meinerseits liest wirklich nur eine Zeile aus deiner Datei ein. Willst Du alles haben, muß Du das ganze in eine Schleife setzen:

C++:
#include <fstream>
...
std::ifstream in("c\wörter.txt");
while(in)
{
   in >> an;
   in >> de;
   in >> ue;
  // mit an, de und ue was machen
}


Allerdings wird natrülich pro schleifendurchlauf das zuvor gelesene wieder überschrieben.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.05.2003, 10:26 Uhr
aiken



das ganze ist hochgradig abhänging davon, wie genau dein Wörterbuch aufgebaut ist; insbesondere, wie sind die Bestandteile einer Zeile voneinander getrennt? Per whitespace, oder per ',' oder ....
Davon hängt ab, welche Fumktionen Du zum lesen brauchst..

Gruß Aiken
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.05.2003, 10:47 Uhr
cppanfang



an virtual:

ich Denke mal es Hängt mit dem
while (in) zusammen,

den ich habe
while (!eof) reingeschrieben.

an aiken :
Meine Textdatei:

Luft air
Auto car
Eins one
Zwei two

u.s.w.

an Beide:

DANKE!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.05.2003, 10:49 Uhr
mastertango



enthalte mich hier mal bevor ich noch was total falsches sage.....aber wenn er die Datei nur auslesen will....was er ja will kann er doch mit fgets arbeiten der den Text in einen char übergibt. Den Char wandel ich dann in einen string.
.....

gruß Master
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.05.2003, 10:54 Uhr
cppanfang



an mastertango:

und wie?

Ich arbeite zwar seit 2 Tagen mit Strings. aber schaden kanns nicht wenn ich weiß.

Danke

Gruß a.A. cppanfang
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.05.2003, 11:14 Uhr
mastertango



ich geb dir mal nen Quellcode wie ich Dateien auslese

#include<iostream.h>
#include<conio.h>

string Separator(string sSourceText,string sSeparator, int iPosition);
void msg(int x, int y, string sText)
{
gotoxy(x,y);
cout<<sText;
}
void main()
{
FILE *fArtikel;
FILE *fKategorie;
fArtikel = fopen("Artikel.txt","r");
char cInputart[50];
char cInputkat[50];
string sZeileart="";
string sZeilekat="";
int i=2;
cout<<"Artnr. Bezeichnung Kategorie Prei";

while (fgets(cInputart,50,fArtikel)!=NULL)
{
i++;
sZeileart=cInputart;
msg(3,i,Separator(sZeileart,";",1));
msg(14,i,Separator(sZeileart,";",2));
fKategorie = fopen("Kategorie.txt","r");
while(Separator(sZeileart,";",4)!=Separator(sZeilekat,";",1))
{
fgets(cInputkat,50,fKategorie);
sZeilekat = cInputkat;
}
fclose(fKategorie);
msg(31,i,Separator(sZeilekat,";",2));
msg(46,i,Separator(sZeileart,";",3));
}
fclose(fArtikel);
getch();
}
string Separator(string sSourceText, string sSeparator, int iPosition)
{
int iold=0;
if (sSourceText=="") return"";
{
}
for(int i=0;i<sSourceText.length();i++)
{
if(sSourceText.substr(i,1)==sSeparator)
{
iPosition--;
if (!(iPosition>0))
{
return sSourceText.substr(iold,i-iold);
}
else
{
iold=i+1;
}
}
}
}
Die Textdateien sehen so aus
Artikel.txt
1;Maus;12.00;2;
2;Tastatur;25.00;2;
3;Drucker;90.00;4;


Kategorie
1;Software;
2;Eingabegeraete;
3;Speicher;
4;Drucker;

Vielleicht hilft dir das

Gruß Master.....
 
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: