Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Ab bestimmten punkt lesen

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
25.08.2005, 12:06 Uhr
~akdsjhfksajhfurz
Gast


Wie kann man machen das man ab einen bestimmten punkt aus dateien liest

So wie da

Datei zu öffnen:

nicht zu lesen {punkt1}Zu lesen{punkt2}Auch zu lesen nur woanders speichern


Geht das irgendwie
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.08.2005, 12:22 Uhr
ao

(Operator)


Du meinst sowas wie "vom 100. bis zum 200. Zeichen"? In C mit fseek und fread, in C++ mit istream::seekg und istream::get.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.08.2005, 12:32 Uhr
virtual
Sexiest Bit alive
(Operator)


Aber vorsicht: fseek verhält sich bei Binären und rein textuellen Dateien unterschiedlich!
--
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
25.08.2005, 12:34 Uhr
~akdsjhfksajhfurz
Gast


Nein ich meine das sobald {punkt1} gelesen wird bis wieder ein {punkt} kommt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.08.2005, 13:07 Uhr
ao

(Operator)


Wenn du nicht weißt, an welchen Positionen sich die Punkte befinden, bleibt wohl nichts anderes übrig als die ganze Datei einzulesen und zu untersuchen. In C z.B. mit strstr oder strchr, in C++ mit std::string::find.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.08.2005, 13:29 Uhr
Spacelord
Hoffnungsloser Fall


Oder schau dir mal std::getline an.....oder durchlauf das streambuf Objekt deines ifstreams direkt mit sgetc,sbumpc.Ist schneller als istream::get und damit solltest du dir relativ problemlos was basteln können.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.08.2005, 14:09 Uhr
Skippy



wenn sichergestellt ist das beide "punkte" in einer zeile sind dann mach folgendes

lese mit getline in einem string

jetzt suche dort position von der zeichenfolge pos1 und von pos2 lege beides in einem std::string::size_type (pos1 und pos2) mit hilfe der funktion find()

nun kopierst du den text der zwischen beiden positionen ist mit hilfe der funktion substr()

finish_string = line_string.substr(pos1, pos2);

in deinem string den du nun z.b. per return ausgeben kannst oder was auch immer


als beispiel


C++:
  std::string finish_string;
  std::string::size_type pos1 = line_string.find("{punkt1}");
  std::string::size_type pos2 = line_string.find("{punkt2}");
  if (pos1 != std::string::npos && pos2 != std::string::npos)
  {
    finish_string = line_string.substr(pos1, pos2);
  }

 
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: