Mein Programmiercode will nicht

Alles rund um die Programmierung mit Qt
Antworten
Andy_Regenstauf
Beiträge: 4
Registriert: 7. September 2010 23:03

Mein Programmiercode will nicht

Beitrag von Andy_Regenstauf »

Code: Alles auswählen

    QString array[1000];
    QString text;
    long int groesse;
    system("START screenshot.exe");
    QFile file("text.txt");
    file.open(QIODevice::ReadOnly);
    QByteArray in = file.readAll();
    groesse= file.size();
    file.close();


    int XCount;
    int T;
    cout << groesse <<endl;
    for (int x = 1 ; x < groesse ; x += 8192)
    {
        XCount += 1;
        if ((groesse - x) < 8192)
        {
        T = (groesse - x +1);
        }
        text = "";
           text = in.mid(x,T);

           array[XCount] = text;

    }
cout << XCount <<endl;
Normalerweise sollte er die Datei text.txt auslesen und dann 8192 Byte sepperat in einem array ablegen.
Macht er aber nicht.
Keine Ahnung wieso :oops:
Die Dateigröße stimmt übrigens auch nicht, auch wenn ich groesse= file.size(); habe.
Normalerweise müsste 8192 byte einlesen und an weiterer stelle wieder 8192 byte einlesen.
androphinx
Beiträge: 170
Registriert: 26. Januar 2009 09:19
Wohnort: 127.0.0.2

Beitrag von androphinx »

Du initialisierst die Variable XCount nie und inkrementierst sie dann, wie soll das gehen? Dass das dann mit dem Array auch nicht funktionieren kann, ergibt sich ja....

Mfg androphinx

EDIT: Selbiges gilt übrigens auch für T...
Andy_Regenstauf
Beiträge: 4
Registriert: 7. September 2010 23:03

Beitrag von Andy_Regenstauf »

Code: Alles auswählen

    QString array[1000];
    QString text;
    long int groesse;
    groesse = 0;
    system("START screenshot.exe");
    QFile file("text.txt");
    file.open(QIODevice::ReadOnly);
    QByteArray in = file.readAll();
    groesse= file.size();
    file.close();


    int XCount;
    int T;
     XCount = 0;
     T = 0;
    cout << groesse <<endl;
    for (int x = 1 ; x < groesse ; x += 8192)
    {
        XCount += 1;
        if ((groesse - x) < 8192)
        {
        T = isspace(groesse - x +1);
        }
        text = "";
           text = in.mid(x,T);

           array[XCount] = text;

    }
jetzt funktioniert es, naja, wusste nicht, das man in c++ den Variablenwert erst auf 0 setzen muss.
In freebasic sind die standartmäßig immer auf 0 gesetzt.

Nochmal vielen dank
Antworten