Inhalt von Textpuffer im gtk+-app in datei schreiben?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
24dan
Beiträge: 142
Registriert: 02.01.2006 10:47:36
Wohnort: Hamburg
Kontaktdaten:

Inhalt von Textpuffer im gtk+-app in datei schreiben?

Beitrag von 24dan » 23.05.2006 23:39:25

Hallo ich habe ein gtk+ programm geschrieben bei dem ich ein textfeld inhalt in einen

Code: Alles auswählen

GtkTextBuffer *puffer;
schreibe. Jetzt möchte ich auf Knopfdruck einfach den Inhalt in eine normale foo.datei schreiben.
Ich bin bis jetzt auf folgende mögliche funktionen gestossen:

Code: Alles auswählen

/* um die Textgrenzen erstmal zu bekommen*/
	GtkTextIter anfang, ende;
	gtk_text_buffer_get_bounds(puffer, &anfang, &ende);

/* dann den neuen Puffer anlegen */
	gchar *neuerBuffer = gtk_text_buffer_get_text (puffer, &anfang, &ende, TRUE);   
Kann mir jemand helfen?
Ich wollte einfach eine einfache datei mit fopen oeffnen und dann beschreiben.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
http://www.european-prophecies.de/Proph ... tkrieg.htm

stettberger
Beiträge: 58
Registriert: 08.03.2005 17:11:05
Kontaktdaten:

Beitrag von stettberger » 25.05.2006 14:53:11

Code: Alles auswählen

void save_node(GtkWidget *window, gpointer data){
  char *text;
  GtkTextIter start, end;
  GtkTextBuffer *buf = gtk_text_view_get_buffer(data);
  gtk_text_buffer_get_bounds(buf, &start, &end);
  text = gtk_text_buffer_get_text(buf, &start, &end, FALSE);

  /*Text speichern*/
  FILE *pad =fopen(".pad", "w+");
  fprintf("%s", pad, text);
  fclose(pad);
  g_free(text);
}
Is alter code, sollte aber theoretisch tuen
Weil rebooten keine Lösung ist - GNU/Linux

Benutzeravatar
24dan
Beiträge: 142
Registriert: 02.01.2006 10:47:36
Wohnort: Hamburg
Kontaktdaten:

Beitrag von 24dan » 26.05.2006 21:45:39

Danke das sah eigentlich schon mal nicht schlecht aus...
Doch bekomme ich hier noch folgende Fehlermeldung:

Code: Alles auswählen

(gtkhallo:5722): Gtk-CRITICAL **: gtk_text_view_get_buffer: assertion `GTK_IS_TEXT_VIEW (text_view)' failed

(gtkhallo:5722): Gtk-CRITICAL **: gtk_text_buffer_get_bounds: assertion `GTK_IS_TEXT_BUFFER (buffer)' failed

(gtkhallo:5722): Gtk-CRITICAL **: gtk_text_buffer_get_text: assertion `GTK_IS_TEXT_BUFFER (buffer)' failed

Segmentation fault

Kann da nochmal jemand einen Tip geben
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
http://www.european-prophecies.de/Proph ... tkrieg.htm

Benutzeravatar
24dan
Beiträge: 142
Registriert: 02.01.2006 10:47:36
Wohnort: Hamburg
Kontaktdaten:

Beitrag von 24dan » 29.05.2006 22:27:38

Okay den Fehler habe ich gefunden:

Code: Alles auswählen

int fprintf(FILE *stream, const char *format, ...);
jetzt läuft es nur habe ich noch Problem mit den Umlauten die werden leider nicht mit in die Datei geschrieben da steht dann nur A|| drinn für ä?
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
http://www.european-prophecies.de/Proph ... tkrieg.htm

Antworten