Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wie kann ich float-Daten aus eine Datei auslesen ?
Bei der obigen Methode, bei der ich meine Daten als Text-Datei auslesen, geht es ohne Probleme.
Will ich aber direkt eine Binär-Datei mit Float-Werten auslesen, dann kommt nichts (2. Methode).
Pascal-single sollte gleich sein mit Java-float.
Java:
private float[] ReadVector(String Datei) {
int i = 0;
float[] vec = null;
try {
BufferedReader f = new BufferedReader(new InputStreamReader(OpenGLES20Activity.MeinContext.getAssets().open(Datei)));
String s = f.readLine();
anzVertex = Integer.parseInt(s);
vec = new float[anzVertex];
// while ((s = f.readLine()) != null) {
for (i = 0; i <= anzVertex - 1; i++) {
s = f.readLine();
float fl = Float.parseFloat(s);
vec[i] = fl;
// i++;
}
f.close();
} catch (IOException e) {
Log.e(null, "Fehler beim Lesen der Datei", e);
}
return vec;
}
private float[] ReadVectorBin(String Datei) {
int i = 0;
float[] vec = null;
try {
BufferedReader f = new BufferedReader(new InputStreamReader(OpenGLES20Activity.MeinContext.getAssets().open(Datei)));
float fl = f.read();
anzVertex = Math.round(fl);
anzVertex = 18;
vec = new float[anzVertex];
for (i = 0; i <= anzVertex - 1; i++) {
fl = f.read();
vec[i] = fl;
i++;
}
f.close();
} catch (IOException e) {
Log.e(null, "Fehler beim Lesen der Datei", e);
}
return vec;
}
Mit dieser Pascal(Lazarus)-Procedure werden die Binär-Daten geschrieben:
Java:
procedure WriteBin(Datei: string);
var
i, j, k: integer;
f: file of single;
s: single;
begin
AssignFile(f, Datei);
ReWrite(f);
s := Length(Vector) * 3 * 3;
for i := 0 to Length(Vector) - 1 do begin
for j := 0 to 2 do begin
for k := 0 to 2 do begin
Write(f, Vector[i, j, k]); // Vector ist eine singleArray
end;
end;
end;
CloseFile(f);
end;
les doch erst mal die datei in eine Arraylist oder so was ein und übergibt diese an eine Methode die dann den den inhalt der arraylist in dein float[] umwandelt
les doch erst mal die datei in eine Arraylist oder so was ein und übergibt diese an eine Methode die dann den den inhalt der arraylist in dein float[] umwandelt
Ja oder man fängt erst mal damit an den BufferedReader, der für Text geeignet ist (steht auch in der Dokumentation), gegen etwas zu ersetzen mit dem man reine Binärfiles einlesen kann...