Programm liest immer die selbe Datei aus

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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
    ...
  • 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ß :)
    mfg DerCoder

    Wer Fehler findet, darf sie behalten ;)

    ~~ Tutorial: [wiki]Tutorial: Beep[/wiki] ~~

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DerCoder ()

  • C-Quellcode

    1. #include <iostream>
    2. #include <sstream>
    3. #include <fstream>
    4. #include <string>
    5. #include <stdio.h>
    6. using namespace std;
    7. int outs1[100], outs2[100]; //Pos1 und Pos2 je für zu 10 kopierende Textausschnitte
    8. // Funktion wie gehabt
    9. int menu(void){
    10. int zdata;
    11. cout << "Dieses Programm entnimmt Text aus .txt-Dateien." << endl << endl << endl;
    12. cout << "Zahl der zu entnehmenden Daten:\t"; cin >> zdata;
    13. for (int aa = 0; aa < zdata; aa ++) {
    14. cout << "Bitte geben sie für den Ausschnitt " << aa <<" die Daten an!" << endl;
    15. cout << "Von Zeichen:\t"; cin >> outs1[aa];
    16. cout << "X Zeichen:\t"; cin >> outs2[aa];
    17. cout << endl << endl;
    18. };
    19. return zdata;
    20. };
    21. int main() {
    22. // hier einzelne änderungen bei den variablen, musst aber nochmal drüber sehen ob alle variablen gebraucht werden
    23. string buffer;
    24. string txt;
    25. string ausgabedatei;
    26. int zz=0, mz=2, nn=0;
    27. string text;
    28. string titel="ausgabe.txt";
    29. string dat;
    30. // fieser Menu-Override:
    31. /*
    32. outs1[0]=3;
    33. outs2[0]=100;
    34. outs1[1]=8;
    35. outs2[1]=13;*/
    36. remove("ausgabe.txt"); //löschen einer alten ausgabe.txt falls vorhanden
    37. mz = menu(); // Menüaufruf
    38. for (long ingzz = 100000; ingzz <= 150000; ingzz ++) { //durchsucht Ordner nach Jxxxxxxx-Dateien
    39. //erstellt 'Jxxxxxxx.txt'-String aus Zählernummer
    40. ostringstream strout;
    41. // datei danem bestimmen
    42. strout << ingzz;
    43. dat = "J" + strout.str() + ".txt";
    44. // datei öffnen
    45. fstream fin(dat.c_str());
    46. // wenn datei geöffnet ist
    47. if (fin) {
    48. txt = "";
    49. // datei gefunden!
    50. cout << dat <<" gefunden...\n";
    51. while (fin.good()) { // hängt den Inhalt an den String txt an
    52. getline(fin, buffer);
    53. txt += buffer;
    54. }
    55. // ausgabe txt
    56. cout << txt << endl;
    57. // txt in datei string speichern
    58. ausgabedatei = txt.substr(outs1[zz], outs2[zz]);
    59. // integer zz erhöhen
    60. zz++;
    61. // ausgabe
    62. cout << "--> Text: " << ausgabedatei << endl;
    63. dat = dat.substr(0, dat.length()-4); // erzeugt korrekten Kennnamen
    64. ofstream outfile; // Ausgabe in Datei
    65. // datei öffnen
    66. outfile.open("ausgabe.txt", ios::app);
    67. // speichern
    68. outfile << dat << "-von:" << outs1[zz] << "-zeichen:" << outs2[zz] << "-String:" << ausgabedatei << endl;
    69. outfile.close();
    70. }
    71. }
    72. }
    Alles anzeigen
    mfg DerCoder

    Wer Fehler findet, darf sie behalten ;)

    ~~ Tutorial: [wiki]Tutorial: Beep[/wiki] ~~