Ich baue eine App zur Analyse wissenschaftlicher Daten mit cgtk3. Ich bin nicht in der Lage, binäre Dateien zu laden und neue Binärdateien mit einem Teil des Inhalts aus der gelesenen Datei zu erstellen.Laden und Schreiben von Binärdateien mit gtk3 in c
Ich benutzte GFileoutputStream
und aber sobald Null kommt, dauert es als Abschlusszeichen, die ich nicht will. Ich möchte gerade Nullen lesen und dann bitweise Daten extrahieren. Jede Hilfe würde sehr geschätzt werden.
Mein Code:
void file_selected(GtkWidget *filechooserbutton, gpointer data, GtkTextBuffer *buffer) {
filename=gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(filechooserbutton));
g_file_get_contents(filename, &contents, NULL, NULL);
text1 = g_substr(contents,0,value);
gint DataHeaderNum=96;
gint value2=value+DataHeaderNum;
text2 = g_substr(contents,value,value2);
gchar *filler;
filler=g_strnfill (DataHeaderNum,'0');
//g_print(filler);
gint DataNum=2048-DataHeaderNum;
gint value3=value2+DataNum;
text3 = g_substr(contents,value,value3);
g_strlcat(filler,text3,2048);
text3=g_strdup(filler);
//g_print(text3);
gchar *full;
gchar *name="SpaceCraftHeader";
gchar *name2="DataHeader";
gchar *name3="Data";
full=g_strdup(filename);
g_strlcat(full,name,50);
GFile *file=g_file_new_for_path(full);
GFileOutputStream *output=g_file_replace(
file,NULL,FALSE,
G_FILE_CREATE_NONE,
NULL,NULL);
g_output_stream_write(G_OUTPUT_STREAM(output),
text1,strlen(text1),NULL,NULL);
g_output_stream_close(G_OUTPUT_STREAM(output),NULL,NULL);
}