Schmolleg
19-11-2004, 10:34
Hallo Leute !
Ich möchte die Variable localmsn in ein gtk_entry eintragen aber nach dem die Variable im Textfeld ist seht an letzter Stelle immer so ein kasten im Textfeld ich glaub ich habe was falsch gemacht nur was ?
char locamsn[20];
FILE* number=popen("egrep LOCALMSN /etc/isdn/device.ippp0 | awk '{ print $1 } ' | cut -b 10-20","r");
fgets(localmsn,sizeof(localmsn),number);
gtk_entry_set_text (GTK_ENTRY (entry), localmsn);
Schmolleg
20-11-2004, 15:05
Also vieleicht könnt ihr euch nicht viel Vorstellen unter meinem Problem. Hinter der Nummer steht immr so ein Kasten wo 000a drin steht aber wegen einem Datenbankfehler kann ich leider keinen Screenshot machen.
Hier ist der Quellcode:
#include <gtk/gtk.h>
#include <iostream>
#include <string>
#include <sstream>
#include <unistd.h>
#include <stdio.h>
using namespace std;
void connect (GtkWidget *widget,
GtkWidget *text)
{
string device1;
const gchar *entry_text;
entry_text = gtk_entry_get_text (GTK_ENTRY (text));
device1 = entry_text;
system("/etc/init.d/isdnutils start ");
system(("/usr/sbin/isdnctrl dial " + device1).c_str());
}
void disconnect( GtkWidget *widget,
GtkWidget *text)
{
string device2;
const gchar *entry_text;
entry_text = gtk_entry_get_text (GTK_ENTRY (text));
device2 = entry_text;
system(("/usr/sbin/isdnctrl hangup " + device2).c_str());
system("/etc/init.d/isdnutils stop");
}
static void quit( GtkWidget *widget,
GdkEvent *event,
gpointer data )
{
gtk_main_quit ();
}
int main( int argc, char *argv[] )
{
GtkWidget *window;
GtkWidget *button1;
GtkWidget *button2;
GtkWidget *button3;
GtkWidget *text;
GtkWidget *table;
int id;
id = getuid();
if (id!=0)
{
printf("You must be root!\n");
exit(EXIT_FAILURE);
}
char localmsn[20];
FILE* number=popen("egrep LOCALMSN /etc/isdn/device.ippp0 | awk '{ print$1 }' | cut -b 10-20","r");
fgets(localmsn,sizeof(localmsn),number);
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window) , "Dial-0.1-alpha");
gtk_container_set_border_width (GTK_CONTAINER (window), 25);
table = gtk_table_new (4, 0, TRUE);
gtk_container_add (GTK_CONTAINER (window), table);
text = gtk_entry_new();
gtk_entry_set_max_length (GTK_ENTRY (text), 15);
gtk_entry_set_text (GTK_ENTRY (text), localmsn);
button1 = gtk_button_new_with_label ("connect");
button2 = gtk_button_new_with_label ("disconnect");
button3 = gtk_button_new_with_label ("exit");
gtk_table_attach_defaults (GTK_TABLE (table), button1, 0, 1, 0, 1);
gtk_widget_show(button1);
gtk_table_attach_defaults (GTK_TABLE (table), button2, 0, 1, 1, 2);
gtk_widget_show(button2);
gtk_table_attach_defaults (GTK_TABLE (table), button3, 0, 1, 2, 3);
gtk_widget_show(button3);
gtk_table_attach_defaults (GTK_TABLE (table), text, 0, 1, 3, 4);
gtk_widget_show(text);
g_signal_connect (G_OBJECT (button1), "clicked",
G_CALLBACK (connect),
(gpointer) text);
g_signal_connect (G_OBJECT (button2), "clicked",
G_CALLBACK (disconnect),
(gpointer) text);
g_signal_connect (G_OBJECT (button3), "clicked",
G_CALLBACK (quit), NULL);
g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (quit), NULL);
gtk_widget_show (table);
gtk_widget_show (window);
gtk_main ();
return 0;
}
tkortkamp
22-11-2004, 13:13
Hi!
000a ist ein Newline-Zeichen (\n). Entweder du änderst dein egrep Aufruf so das keine neue Zeile danach ausgegeben wird oder du schneidest beim String das letzte Zeichen weg.
HTH
Tobias
Schmolleg
23-11-2004, 19:04
Und wie kann das aussehen ?
Schmolleg
25-11-2004, 15:38
Also ich habe jetzt schon alles mögliche versucht '\n' wohin zu setzten aber es geht einfach nicht. Und in popen kann ich das doch nicht einfach reinmachen, weils nen Systembefehl ist. Es wird doch jemand wissen wo ich das hinsetzten muss !!!!!!!
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.