Seite 1 von 1
Mein Programmiercode will nicht
Verfasst: 8. September 2010 17:38
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

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.
Verfasst: 8. September 2010 19:28
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...
Verfasst: 8. September 2010 23:04
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