You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Wednesday, July 15th 2009, 9:13pm

Programm liest immer die selbe Datei aus

Wunderschönen guten Abend ;)

Ich hoffe mir kann hier geholfen werden. Ich bin noch totaler C++-Anfänger und wollte ein Programm für die Arbeit schreiben, um mir und Kollegen stupide Copy&Paste Arbeit abzunehmen.
Bitte nicht schlagen, wenn euch aufgrund irgendwelcher umständlicher Lösungen die Haare zu Berge stehen ;)
Grundsätzlich soll das Programm alle .txt-Dateien mit "J[zahl]" öffnen und an zu definierenden Stellen Textstücke entnehmen. Diese werden dann wieder in eine ausgabe.txt geschrieben.
Ich habe das Programm dank des Internets und weniger Vorkenntnisse schon recht vollständig hinbekommen.

Dummerweise aber gibt es stets (auch für andere Dateien mit anderen Daten) die Daten der ersten Datei aus. Zwecks Diagnose habe ich erstmal die Ausgabe in die Datei auskommentiert und lasse den ganzen Spaß in die Konsole schreiben.
Ich nehme an, dass es nur ein kleiner Fehler ist .. dieser ist wohl irgendwo beim Einlesen der Daten versteckt :(
Und ich flehe euch dringlichst um Hilfe an ;)

Grüße, Matthias

PS das Prog gibt's als .txt hier: blub.txt

PPS die Ausgabe der Konsole sieht dann in etwa so aus:
J100000_1 erste Datei Ausschnitt 1
J100000_2 erste Datei Ausschnitt 2
J100000_3 erste Datei Ausschnitt 3
J100008_1 erste Datei Ausschnitt 1
J100008_2 erste Datei Ausschnitt 2
J100008_3 erste Datei Ausschnitt 3
...

2

Thursday, July 16th 2009, 12:15am

musst du nur bestimmte stellen aus den dateien kopieren?

*EDIT*

ah schon gecheckt :)

3

Thursday, July 16th 2009, 1:35am

hab dein programm fertig ;)
schreib mir ne pm, ich schick es dir dann per email

4

Thursday, July 16th 2009, 9:50am

echt jetzt?! Oo
Geiler Service hier :D

--> Sie haben Post!

5

Thursday, July 16th 2009, 10:31am

hab allerdings einigen kram rausgeholt
jetzt ist es so, das aus der datei ab stell x, y viele zeichen rauskopiert wird, ich hoffe das hilft dir
wenn nicht, googel ich nochaml ;)

ich mach grad kommis in das file

*EDIT*

mail ist raus, viel spaß :)

This post has been edited 1 times, last edit by "DerCoder" (Jul 16th 2009, 10:38am)


6

Friday, July 17th 2009, 1:08pm

@DerCoder
Wie wäre es, wenn du die Lösung dem Rest der Welt auch noch offenbaren würdest?

7

Friday, July 17th 2009, 4:14pm

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;



int outs1[100], outs2[100]; 				//Pos1 und Pos2 je für zu 10 kopierende Textausschnitte


// Funktion wie gehabt
int menu(void){
    int zdata;
    cout << "Dieses Programm entnimmt Text aus .txt-Dateien." << endl << endl << endl;
    cout << "Zahl der zu entnehmenden Daten:\t"; cin >> zdata;
    for (int aa = 0; aa < zdata; aa ++) {
        cout << "Bitte geben sie für den Ausschnitt " << aa <<" die Daten an!" << endl;
        cout << "Von Zeichen:\t"; cin >> outs1[aa];
        cout << "X Zeichen:\t"; cin >> outs2[aa];
        cout << endl << endl;
    };
    return zdata;
};


int main() {
    // hier einzelne änderungen bei den variablen, musst aber nochmal drüber sehen ob alle variablen gebraucht werden
    string buffer;
    string txt;
    string ausgabedatei;
    int zz=0, mz=2, nn=0;
    string text;
    string titel="ausgabe.txt";
    string dat;

    								// fieser Menu-Override:
    /*
    outs1[0]=3;
    outs2[0]=100;

    outs1[1]=8;
    outs2[1]=13;*/

    remove("ausgabe.txt");                                  //löschen einer alten ausgabe.txt falls vorhanden

    mz = menu();                                          // Menüaufruf

    for (long ingzz = 100000; ingzz <= 150000; ingzz ++) {   //durchsucht Ordner nach Jxxxxxxx-Dateien
                                                            //erstellt 'Jxxxxxxx.txt'-String aus Zählernummer
        ostringstream strout;
        // datei danem bestimmen
        strout << ingzz;
        dat = "J" + strout.str() + ".txt";
        // datei öffnen
        fstream fin(dat.c_str());

        // wenn datei geöffnet ist
        if (fin) {
            txt = "";
            // datei gefunden!
            cout << dat <<" gefunden...\n";
            while (fin.good()) {                            // hängt den Inhalt an den String txt an
                getline(fin, buffer);
                txt += buffer;
            }
            // ausgabe txt
            cout << txt << endl;
            // txt in datei string speichern
            ausgabedatei = txt.substr(outs1[zz], outs2[zz]);
            // integer zz erhöhen
            zz++;
            // ausgabe
            cout << "--> Text: " << ausgabedatei << endl;
            dat = dat.substr(0, dat.length()-4);           // erzeugt korrekten Kennnamen
            ofstream outfile;                               // Ausgabe in Datei
            // datei öffnen
            outfile.open("ausgabe.txt", ios::app);
            // speichern
            outfile << dat << "-von:" << outs1[zz] << "-zeichen:" << outs2[zz] << "-String:" << ausgabedatei << endl;
            outfile.close();
        }
    }
}

Similar threads

Social bookmarks