Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Neuer User...

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Off-Topic-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
basixx



Anmeldungsdatum: 29.03.2008
Beiträge: 10

BeitragVerfasst am: 29.03.2008, 13:12    Titel: Neuer User... Antworten mit Zitat

Hallo liebe FreeBasic Gemeinde,
kurze Vorstellung beim 1. Post:
Leider nicht mehr der jüngste (Bj60) und nutze selbst ausschl. Linux.
Hab FB nach einem Kurzbericht in der LinuxUser entdeckt und war sofort begeistert.

1. Die Möglichkeit "Standalone-binaries" zu erstellen
2. Die Möglichkeit mit glade GUIs zusammenzuklicken und einzubinden
3. kennt man basic schon seit einem ZX81, aber zwischendurch irgendwie verloren gegangen...

Das einzige das ich vermisse, ist die Möglichkeit ein paar Codeschnipsel per basic-interpreter
auf der Konsole testweise durchzunudeln, ist aber kein großes Problem.
Freu mich schon auf die ersten Antworten zu meinen Fragen. grinsen

Der erste Versuch war ein bash-script zu schreiben,
was mir aus einer "Übersetzten" glade -Datei ein FBasic-Grundgerüst schreibt,
ähnlich 'glade2bas' aber halt als "Standalone-binary" (weniger als 70 Zeilen!).
Wo darf ich dieses Script zum Testen für Andere platzieren, falls Interesse besteht?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 29.03.2008, 14:25    Titel: Antworten mit Zitat

Hallo,

willkommen im Forum!

Auf FreeBasic-Portal.de gibt es verschiedene Möglichkeiten, seine Quelltexte zugänglich zu machen:

Zunächst gibt es eine Code-Beispiel-Rubrik, in der Quelltexte, die andere Programmierer als nützliche "Flicken" in ihre Programme einbauen können, veröffentlicht werden. Dazu gehören beispielsweise Quelltexte, mit denen eine Datei aus dem Internet heruntergeladen werden kann oder ein Musikstück abgespielt werden kann o.ä.

Außerdem gibt es ein sog. NoPaste-System. Dabei handelt es sich um eine Datenbank, in der alle möglichen Code-Fragmente gespeichert werden können - egal, ob sie funktionstüchtig sind oder nicht. Das NoPaste-System "fb:porticula" erlaubt das Online-Stellen eigener Sources, um sie beispielsweise in Foren oder Chats zur Verfügung zu stellen. Die hochgeladenen Quelltexte werden automatisch einem Syntax Highlighting unterzogen und sind somit einfacher zu überblicken.

Für fertige Programme, die benutzungsfertig sind und nicht primär zur Integration in eigene Software gedacht sind, gibt es des Weiteren die Download-Rubrik. Dort können auch ZIP-Archive mit weiteren, benötigten Dateien hochgeladen werden, um ganze eigene Softwareprojekte vorstellen zu können.

Es gibt also reichlich Möglichkeiten, das große FreeBasic-Informationsarchiv FreeBasic-Portal zu "füttern", um seine Programmierarbeit zu veröffentlichen. zwinkern

Viele Grüße und viel Spaß mit der Website!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 29.03.2008, 21:57    Titel: Re: Neuer User... Antworten mit Zitat

basixx hat Folgendes geschrieben:

Der erste Versuch war ein bash-script zu schreiben,
was mir aus einer "Übersetzten" glade -Datei ein FBasic-Grundgerüst schreibt,
ähnlich 'glade2bas' aber halt als "Standalone-binary" (weniger als 70 Zeilen!).
Wo darf ich dieses Script zum Testen für Andere platzieren, falls Interesse besteht?


Wooot? FB kann mit Glade arbeiten?
Will ich haben happy
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 29.03.2008, 22:03    Titel: Antworten mit Zitat

Schau doch mal im Ordner <FB>\examples\libraries\Gtk\ zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
basixx



Anmeldungsdatum: 29.03.2008
Beiträge: 10

BeitragVerfasst am: 30.03.2008, 09:35    Titel: Antworten mit Zitat

Vielen Dank für die freundliche Begrüßung.
Devilkevin hat Folgendes geschrieben:
Wooot? FB kann mit Glade arbeiten?

Sogar recht einfach, lad dir glade2bas runter:
http://www.freebasic.net/forum/viewtopic.php?t=10185
Das erstellt dir ein basic Programm aus einer glade -Datei,
Nachteil ist: Ohne die glade -Datei funktioniert das basic Prg. nicht.

Da setzt mein bash-script an, nachdem die GUI mit glade erstellt wurde,
und nach klicken auf 'Übersetzen' als source gespeichert wurde,
liest das script sämtliche Informationen zur GUI Beschreibung aus
src/interface.c heraus und schreibt dann das FBasic-Grundgerüst nach '_test.bas'
und versucht auch aus den Signalen die Subs zu erstellen
(zunächst nur mit der Funktion 'gtk_main_quit()')

Poste das script mal hier in den Text, da ich keinen Zugriff aufs
Nopaste-System habe (eine Anmeldung sollte reichen...)
Das script als '_skel_bas' speichern, ausführbar machen und ins
Verzeichnis der glade -Datei kopieren.

_skel_bas hat Folgendes geschrieben:

#!/bin/sh
if [ -r src/interface.c ]; then
 
cp src/interface.c src/interface.neu
 sed -i -ne '1,/{/!{/Store pointers/,/{/!p;}' src/interface.neu; #Bereich eingrenzen
 sed -i -e 's/;$//' src/interface.neu; #Semikolon am Zeilenende entfernen
 sed -i -e 's/ GtkWidget \*\(.*\)/dim shared \1  as GtkWidget ptr/' src/interface.neu; #Dim Befehle
 sed -i -e 's/(gpointer) \(.*\), /G_OBJECT(\1), /' src/interface.neu; #gpointer ersetzen
 sed -i -e '/g_signal_connect/{N;N;s/\n/ /g;s/ \{2\}//g;s/^/ /}' src/interface.neu; #Diese und die folgenden 2 Zeilen ohne Zeilenumbruch zusammenführen
 sed -i -e '/g_signal_connect/s/(/(@/3' src/interface.neu; #Bei den Signalen ein @ für den Subroutine Aufruf hinzufügen
 sed -i -e 's/_(/(/g' src/interface.neu; #Unterstriche vor öffnender Klammer löschen
 sed -i -e 's/\\303\\204/Ä/;s/\\303\\226/Ö/;s/\\303\\234/Ü/;s/\\303\\244/ä/;s/\\303\\266/ö/;s/\\303\\274/ü/;s/\\303\\237/ß/g' src/interface.neu; #einige Umlaute zurück übersetzen
else
 
echo "Bitte zuerst die glade Datei mit glade öffnen und 'Übersetzen' klicken"
 echo "Programm beendet!"
 exit 0
fi

HAUPTFENSTER=$(sed -ne '1p' src/interface.neu | awk '{print $3}'); #Hauptfenster in Variable schreiben
DATENDEFINITIONEN=$(sed -ne '/dim shared/p' src/interface.neu); #Datendefinitionen in Variable schreiben
INTERFACES=$(sed -ne '/gtk_window_new/,//p' src/interface.neu); #Interfaces in Variable schreiben

#Ab hier wird das Basic-Grundgerüst nach '_test.bas' geschrieben
echo "'******************************************************************************
'* Definitionen fuer Gtk
'******************************************************************************
#include \"gtk/gtk.bi\"
#define NULL 0

'******************************************************************************
'* Datendefinitionen
'******************************************************************************
$(echo "
$DATENDEFINITIONEN")
'TextBuffer? buffer =... in eine Sub oder ins Interface
'dim shared buffer    as GtkTextBuffer ptr
'buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview1))

'******************************************************************************
' ab hier die Unterprogramme (SUB's) ...
'******************************************************************************
'Ein Versuch die Subs hier automatisch zu erstellen
$(for i in $(sed -ne '/g_signal_connect.*@on/=' src/interface.neu); do
 x=$(sed -ne "
$i s/.*@\(on.*\)),.*/\1/p" src/interface.neu)
 echo "
sub $x cdecl alias \"$x\"(byval object as GtkObject ptr, byval user_data as gpointer) export
' gtk_main_quit()
end sub
"
done)

'
******************************************************************************
'* Gtk / GUI initialisieren
'
******************************************************************************
  gtk_init(NULL, NULL)

'******************************************************************************
'
* Anzuzeigende Fenster spezifizieren, glade Datei Übersetzung aus src/interface.neu
'******************************************************************************
$(echo "$INTERFACES")

'
******************************************************************************
'* Hauptfenster anzeigen
'
******************************************************************************
  gtk_widget_show_all($HAUPTFENSTER)
  g_signal_connect(G_OBJECT($HAUPTFENSTER), \"destroy\", G_CALLBACK(@gtk_main_quit), NULL)
  gtk_main()
end 0" > _test.bas

_________________
Gruß an alle FreeBasic Fans
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 30.03.2008, 12:51    Titel: Antworten mit Zitat

Hallo,

das Programm macht einen überaus praktischen Eindruck. Glade2Bas hatte ich mir noch gar nicht angesehen. lächeln

Zitat:
Poste das script mal hier in den Text, da ich keinen Zugriff aufs
Nopaste-System habe (eine Anmeldung sollte reichen...)

Zum NoPaste-System: Das stimmt. Man kann auf FreeBasic-Portal.de alle Informationen ohne Anmeldung einsehen und alles herunterladen, aber um eigene Texte/Dateien etc. zu veröffentlichen, ist sowohl aus technischen (die Inhalte sollen in der Datenbank einem Konto zugeordnet sein) wie auch aus verwaltungstechnischen bzw. Haftungsgründen eine Anmeldung nötig, damit man leichter zurückverfolgen kann, welcher Benutzer für welche Inhalte verantwortlich ist. Außerdem sind mit dem Benutzerkonto natürlich auch verschiedene Komfortfunktionen wie die Möglichkeit, eingestellte Inhalte nachher zu bearbeiten, verbunden. Ohne Anmeldung wäre dies nur schlecht realisierbar.
Zur Anmeldung ist die Angabe einer E-Mail-Adresse zwar erforderlich, doch diese wird, wenn man die E-Mail-Einstellungen bei der Registrierung auf der Standardeinstellung belässt, vertraulich behandelt und ist weder Spambots noch anderen Benutzern zugänglich. Lediglich der Betreiber der Website kann ggf. Kontakt zum Nutzer aufnehmen.
Alle anderen Angaben wie der "Realname" usw. sind natürlich freiwillig.

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Off-Topic-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz