Hi Leute,
ich habe einen Code geschrieben, mit dem man txt-Dateien zeilenweise (so die Aufgabenstellung) einlesen kann und hinterher wieder in einen beliebige Datei abspeichern kann.
Code:
#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>
using namespace std;
int main(void) 
{ 
    char *daten; 
   char buffer[1024];               //zeilenweise, buffer lässt Zeilenlänge bis 1024 zu
    int dateigroesse,i=0;
   //Eingabebereich
   ifstream datein;
   string datei;
   string Puffer;
   cout <<"Bitte Pfad eingeben!"<< endl;
   cout <<"Kompletter Quellpfad: ";
   cin >> datei;
   datein.open(datei.c_str(), ios_base::in);
   //Ausgabebereich
   ofstream dataus; 
   string datraus;
         //ifstream dataus;
   cout <<"Bitte Pfad eingeben!"<<endl;
   cout <<"Kompletter Zielpfad: ";
   cin >> datraus;
         //dataus.open("d:\\test2.txt");
   dataus.open(datraus.c_str(), ios_base::out);
    if (datein.good)
        { 
          i=0; 
          datein.seekg(0L,ios::end);   //ios::end, Dateizeiger vom Ende der Datei aus bewegen.  
          dateigroesse = datein.tellg(); 
          datein.seekg(0L,ios::beg);   //ios::beg, Dateizeiger vom Anfang der Datei aus bewegen. 
          daten = new char[dateigroesse+1];
           
      //while(datein.good())            //Vorgang wiederholen, solange Daten in Zeile vorhanden
      while (datein.getline(buffer,1024)) //Liest die korrkte Zeilenanzahl ein!
  
      { 
         //zeilenweise einlesen 
         datein.getline(buffer,1024);
         cout << buffer << "\n";      //zeilenweise
         // Ausgabe; bzw Bearbeitung
         dataus << buffer<<"\n";      //Zugriff auf die gerade geöffnete Zeile      
            i++; 
           } 
          datein.close();
        dataus.close();
      }
      else 
      { 
        cout << "FEHLER keine Datei gefunden!" <<endl; 
      }
   delete[] daten;
   return 0;
} 
Die Aufgabenstellung sieht allerdings vor, dass ich mit dem Code nur bestimmte Daten einlese und abspeichere.
Die Quelldatei aus der gelesen weden soll sieht so aus:
0605 23:32:30 A0 Start LoopCycle                 No.         34907
0605 23:32:40 D0    Provider ID / Count          301         1
0605 23:32:55 A0 Start LoopCycle                 No.         34908
0605 23:33:06 D0    Provider ID / Count          502         39
0605 23:33:21 A0 Start LoopCycle                 No.         34909
0605 23:33:46 A0 Start LoopCycle                 No.         34910
0605 23:34:13 A0 Start LoopCycle                 No.         34911
0605 23:34:26 D0    Provider ID / Count          7           90
0605 23:34:26 D0    Provider ID / Count          300         1
0605 23:34:41 A0 Start LoopCycle                 No.         34912
Das Endergebnis soll hinterher so aussehen:
0605 23:32:30 A0 Start LoopCycle                 No.         34907
0605 23:32:55 A0 Start LoopCycle                 No.         34908
0605 23:34:13 A0 Start LoopCycle                 No.         34911
0605 23:34:41 A0 Start LoopCycle                 No.         34912
Es sollen also nur die Zeilen behandelt werden, in denen nach "Start LoopCycle" keine weitere Zeile mit "Start LoopCycle" direkt folgt.
Es wäre super, wenn mit jemand helfen würde, mir schreiben würde, wo, wie und womit ich meinen Code ergänze um das Problem zu lösen.
Danke
| Esel Gast | 


 
			
				