Aus Dateien Lesen
-
Huhu

Bin neu hier am Board *g*
Ich komme gleich mal zu meiner Frage: Ich weiß, wie ich aus *.txt-Dateien den ganzen Inhalt lesen kann. Wenn ich jedoch die haargenaue Anordnung einer *.txt-Datei kenne, ist es möglich, nur ganz bestimmte Ziffern/Buchstaben einzulesen? (z. B. in Zeile 5 das 14. Zeichen)
Da ich noch Anfänger bin (habe lediglich das Buch "C++ easy. Programmieren mit einfachen Beispielen" von Dirk Louis hinter mir, ein Anfängerbuch eben

Hoffe auf baldige Antwort,
mfg, LBSTheSaint
-
Willst du ne Lösung mit MFC?
Oder rein C++?Mit MFC: Schau dir CStdioFile an, das ist eigentlich selbsterklärend - und Beispiele sollten sich mit google (Forumsuche geht nicht wirklich) finden lassen.

-
Sorry, ich muss gestehen, dass ich nicht weiß, was MFC ist ... Klar, es bedeuted Microsoft Foundation Classes, aber ich hab kA was das genau is
Aber ich glaube mal, ich will nur C++ *g*EDiT: Hab' grad bei Wiki gesehen, dass hat was mit Grafischer Oberfläche zu tun

Wenn das so is, will ich's ganz sicher nicht, ich tu' mir ja schon mit "normalen" Programmen schwer ^^
-
MFC geht auch ohne Klickikram.
Aber ich schieb dich mal ins C++ Forum.
-
Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Okay, dann hab' ich wohl das falsche Forum erwischt *g*
Bitte immer noch um eine Antwort, wenn's geht mit Kommentaren, die mir das ganze erläutern ... Wie gesagt, bin ja noch n Neuling
-
hmm guck dir mal die fseek bzw std::fstream::seekg Funktion an ... damit kannst du an eine bestimmte Pos dich bewegen ...
-
Wo kann ich mir die denn ansehen?
Sorry falls ich nerve

-
der header <fstream> und die klassen ifstream, ofstream und fstream sind dafür da.
rest: goooooogle//edit: sorry, jetzt erst mal genau die frage gelesen.
also dann such nach fseek, bei google z.B., vllt. in zusammenhang mit c++ ("fseek c++" o.ä.).
aber ich glaube, nach dem easy c++-buch soltest du das können, oder etwa nicht ? ich habs auch mal gelesen, zwar vor einem jahr, aber ich glaube, das kam darin vor. sorry wenn ich mich irre.mfg,
julian
-
Ja, bei mir ist das lesen auch schon fast ein Jahr her und ich hab jetzt nur die relevanten Kapitel rausgesucht, weil ich nicht die Zeit hab, das ganze Buch durchzulesen
Aber thx für deine Antwort, werds morgen mal probieren, geh jetz ins bett *g*
-
Sorry, ich versteh's nicht ... Ich habe ein Textdokument, dass irgendeinen Inhalt hat .. Wie kann ich jetz den "Cursor" einfach wo hinbewegen und sagen, er soll ab diesem Zeichen noch X Zeichen weiterlesen und dann wieder aufhören? (und dass ganze ein paar mal im Dokument) ... Kann mir das mal wer vorproggen? Gibt ja sicher Profis unter euch und sind ja nur ein paar Zeilen, nehme ich an
*lieb gugg*
Saint
-
wenn du uns verrätst was du mit
er soll aber diesem Zeichen noch X Zeichen weiterlesen
meinst ... ^^ ist nicht wirklich deutsch bzw nicht verständlich ...
Achja ... ich meinte nicht fseek wie hier so ein Schlaumeier meinte. Wir sind bei C++ ... http://www.cppreference.com/cppio/seekg.html
-
Ich meinte "ab diesem zeichen" ... ist editiert

Danke, werds mal googlen
EDiT: Kann mir das mal wer mit Kommentaren an nem Bsp erklären? wäre seehr dankbar^^
-
LBSTheSaint schrieb:
Ich habe ein Textdokument, dass irgendeinen Inhalt hat .. Wie kann ich jetz den "Cursor" einfach wo hinbewegen und sagen, er soll ab diesem Zeichen noch X Zeichen weiterlesen und dann wieder aufhören? (und dass ganze ein paar mal im Dokument) ... Kann mir das mal wer vorproggen? Gibt ja sicher Profis unter euch und sind ja nur ein paar Zeilen, nehme ich an
Ja .. sind nur ein paar Zeilen. Dieses Programm
#include <iostream> #include <fstream> #include <iomanip> #include <string> int main() { using namespace std; ifstream file( "input.txt" ); for( istream::pos_type cursor = 10; ; cursor += 10 ) { file.seekg( cursor ); // 'Cursor' neu setzen string txt; if( (file >> setw( 2 ) >> txt).fail() ) // setw(2) sorgt dafür, dass genau 2 Zeichen gelesen werden break; cout << "gelesen: |" << txt << "|" << endl; } return 0; }liefert bei dieser Datei 'input.txt' (DOS-Format; d.h. jedes Zeilenende besteht aus CR LF - also 2 Zeichen)
1a3456 901b345678901c 5678901d345 8901e345678901f3 678901g345 89folgenden Output:
gelesen: |1b|
gelesen: |1c|
gelesen: |1d|
gelesen: |1e|
gelesen: |1f|
gelesen: |1g|... im Allgemeinen ist diese Art des Lesen - zumal aus einer Textdatei - nicht zu empfehlen.
Gruß
Werner