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.
Mit dieser Pascal(Lazarus)-Procedure werden die Binär-Daten geschrieben:
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;
}
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;
Zuletzt bearbeitet: