cgtk3を使用して科学的データを分析するアプリケーションを構築しています。バイナリファイルを読み込むことができず、読み込みファイルからコンテンツの一部を使って新しいバイナリを作成することができません。cでgtk3を使用してバイナリファイルを読み書きする
私はGFileoutputStream
とg_file_load_contents
を使用しましたが、すぐにゼロが来るように私はしたくない終了文字としてそれをとります。私はゼロを読み込み、ビット単位でデータを抽出したい。どんな助けも高く評価されます。
マイコード:
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);
}