Les fichiers RTF

Rédigé par spheris Aucun commentaire
Classé dans : fichiers, gambas 2, Tutoriels Mots clés : aucun

OUVRIR, MODIFIER, ENREGISTRER UN FICHIER RTF

 


 

rtffile.png


Bonjour,

Aujourd'hui nous allons ouvrir un fichier RTF, le format de fichier texte enrichi , nous allons modifier un texte "aaaaaa" et nous allons le refermer.

Pour cet exemple, nous ferons une petite application qui :

1)ouvrira le fichier RTF au moyen d'une boite de dialogue et copira le contenu du fichier dans une texarea par le code :

PUBLIC SUB bopen_Click()
Dialog.Filter = ["*.rtf", "Fichiers RTF", ".RTF", "Fichiers RTF"]
Dialog.Title = "Ouvrir unfichier"
Dialog.Path = Application.Path
IF Dialog.OpenFile() THEN RETURN
TextArea1.Text = File.Load(Dialog.Path)
END


2) vous saisirez alors votre nom dans une textbox et l'occurence "aaaaaa" dans notre fichier sera remplacée au moyen de ce code:

PUBLIC SUB bedit_Click()
TextArea1.Text = Replace$(TextArea1.Text, "aaaaaa", TextBox1.Text)
END




3)Le nouveau fichier RTF s'enregistrera sous le nom newfile.rtf dans le repertoire de l'application par ce code :

PUBLIC SUB bsave_Click()
DIM fichier2 AS File
fichier2 = OPEN Application.Path & "/mynewfile.rtf" FOR CREATE  
PRINT #fichier2, TextArea1.Text
CLOSE #fichier2
Message.Info("Allez dans le repertoire de l'application, un nouveau fichier mynewfile.rtf est créé, le texte est remplacé. CQFD")
Message.Info("Explore the application path directory. a new file mynewfile.rtf is created.The text is replaced.Yeah!")
END


Ouvrons maintenant le nouveau fichier et le texte est bien remplacé, la mise en page n'est pas perdue, et le fichier n'est pas corrompu.
CQFD !
Merci de votre attention.
TELECHARGER L'EXEMPLE

Utiliser la columnview

Rédigé par spheris Aucun commentaire
Classé dans : base de donnees, Columnview, gambas 2, Tutoriels Mots clés : aucun

REMPLIR UNE COLUMNVIEW AVEC UNE BDD SQLITE


bddview.png
Bonjour,
aujourd'hui je vous propose de remplir une columnview à l'aide d'une base de données sqlite.

A) creation de la columnview
Cliquez sur le widget columnview et dessinez la dans votre form.

B) Definition de la columnview
Nous allons definir une columnview de 4 colonnes comme ceci dans l'evenement open de notre form :

PUBLIC SUB Form_Open()
ColumnView1.Columns.count = 4
ColumnView1.Columns[0].Width = 50
ColumnView1.Columns[0].Text = "ID"
ColumnView1.Columns[1].Text = "famille"
ColumnView1.Columns[2].Text = "refinterne"
ColumnView1.Columns[3].Text = "designation"
majgrille() 'rempli la colomnview avec la bdd
END



C) remplissage de notre columnview.
Ici nous supposons que notre bdd existe.
voici le code commenté de la fonction majgrille

PUBLIC SUB majgrille()
DIM mykey AS Integer = 0
maconnexion.Type = Lower("sqlite3") 'type de bdd
maconnexion.Host = Application.Path 'chemin dacces de la bdd
maconnexion.Name = "bdddata" 'nom de la bdd que nous voulons utiliser
maconnexion.Login = "" 'login pour se connecter a la base
maconnexion.Password = "" ' mdp pour connecter a la base
maconnexion.Port = "" ' port si bdd en reseau
maconnexion.Open() 'ouverture de la bdd
sql = "SELECT * FROM articles WHERE ID  LIKE '%" & "" & "%'"                
monresultat = maconnexion.Exec(sql)
ColumnView1.Clear() 'efface la columnview
FOR EACH monresultat
 ColumnView1.Add(thekey, Now) 'ajoute la premiere ligne
ColumnView1[thekey][0] = monresultat!ID
ColumnView1[thekey][1] = monresultat!famille
ColumnView1[thekey][2] = monresultat!refinterne
ColumnView1[thekey][3] = monresultat!designation
INC thekey incremente la ligne
NEXT
maconnexion.Close() 'ferme la connexion
END


voila pour aujourd'hui.

Robot sous Gambas

Rédigé par spheris Aucun commentaire
Classé dans : electronique, gambas 2, video Mots clés : aucun
2012 nous entrons dans lère futuriste sans bug :D .
Ce bras manipulateur est capable de soulever.... un fil electrique.
Ce test réalisé par un amateur démontre les possibilités de gambas et sa facilité de mise en oeuvre.


GB.net.curl et FTP

Rédigé par spheris Aucun commentaire
Classé dans : Composants, gambas 2, reseau, Tutoriels Mots clés : aucun
LE COMPOSANT FTPCLIENT



ftp1.png

Bonjour,

aujourd'hui nous allons nous interesser a la fonction FTP intégrée dans Gambas

Tout d'abord, il vous faut dans votre nouveau projet ajouter le composant GB.NET.CURL, la couche réseau de haut niveau.



ftp2.png


Ensuite, nous allons poser un nouveau widget sur notre Form. Sélectionnez le dans l'onglet Network.



ftp3.png



Voici maintenant le fonctionnement très simple de ce widget.


LA propriété URL :
Il s'agit du nom de fichier sur le serveur ftp
exemple :

FTPClient1.url = "ftp://ftpperso.free.fr/monfichier.txt"

Pour se connecter, il suffit de renseigner la propriété User et password comme ceci :

FTPClient1.user = "monlogin"
FTPClient1.paswword = "monpassword"
FtpClient1.Timeout = 4


Timeout est le nombre de tentative de connexion au serveur ftp


Detaillons maintenant les methodes :
Si une erreur survient lors de l'envoi ou réception de fichier, cette methode sera exécutée :

PUBLIC SUB FtpClient1_Error()
Message.Info("erreur d'envoi de fichier. Veuillez recommencer")
END

Lors de la connexion cette methode est exécutée :
PUBLIC SUB FtpClient1_Connect()
lresultat.Text = "en cours de connexion..."
END


Lorsque l'envoi ou la réception est effectuée, cette méthode est exécutée :
PUBLIC SUB FtpClient1_Finished()
lresultat.Text = "Envoi fait avec succes.Vous pouvez fermer GBtest"
END


Tout ca c'est bien mais comment peut on envoyer des fichiers sur le serveur ???
par cette commande  :

FtpClient1.Put("/home/user/monfichier.txt")

et pour recevoir un fichier :

FtpClient1.get("monfichier.txt")

n'oublions pas de fermer la connexion au serveur par :

FtpClient1.close


Voilà pour aujourd'hui.
Merci à Manu et LinuxOs pour leur aide précieuse.




Aquisition avec K8055

Rédigé par spheris Aucun commentaire
Classé dans : electronique, gambas 2, Tutoriels Mots clés : aucun
ACQUISITION DES ENTREES DE LA K8055

k8055in.png



Bonjour,
aujourd'hui nous allons realiser un travaux pratique qui va nous permettre de récuperer les valeurs numériques et analogiques aux entrées de la fameuse carte K8055 (VM110) de Velleman.

Pour se faire, nous partons sur l'hypothèse que vous avez une carte montée reliée à l'USB  de votre ordinateur, et que vous avez les pilotes compilés et installé et enfin que vous avez les droits root pour piloter l'usb.

Un petit test de notre carte doit nous allumer les 8 leds de sortie par la commande Gambas :

EXEC[ "k8055", "-d:255"]

L'acquisition des entrées de cette carte est sous la forme d'une chaine de caractère comme ceci :

499;16;128;230;9;8

    * 499 : mesure 499ms après lancement de la commande
    * 16 : Entree digitale i5 = 1 tous les autre à 0
    * 128 : entree analogique 1 a la valeur 128
    * 230 : entree analogique 2 a la valeur 230
    * 9 : valeur du compteur 1 est 9
    * 8 : valeur du compteur 2 est 8

Je veux pouvoir utiliser ces données pour afficher la valeur de l'entrée analogique 1 (128) et la stocker dans une textbox1 par exemple.

Voici l'astuce que j'ai trouvé :

A) extraction de la chaine après lancement de la commande EXEC
tout d'abord, je crée une textarea1 qui me permetra de récuperer la chaine de caractere de ma commande. Ainsi, je pourrai ecrire le code suivant :

nb: J'ai mis ce code dans un timer comme ca, je récupère la valeur analogique toutes les secondes

EXEC ["k8055", "-p:0", "-num:"] TO textarea1.Text

ensuite j'utilise une astuce qui consiste à séparer les nombres à l'aide de la détection du point virgule et à l'insérer dans une columnview1 comme ceci :

DIM sLine AS String
DIM Car AS String
DIM bal AS Integer
DIM Pos AS Integer
DIM a AS Integer
DIM mavaleur AS Integer
DIM myvalue AS Float

 bal = 1
Car = ";" 'caractere separateur
INC key
sLine = TextArea1.Text
INC key
Pos = InStr(sLine, Car, bal)
'add first column
ColumnView1.Add(key, Left$­(sLine, Pos - 1))
'a est le numero de colonne
a = 0
DO WHILE (Pos <> 0 AND sLine <> "")
a = a + 1
'permet d'enlever à chaque fois la partie que lon a ecrit
sLine = Mid(sLine, Pos + 1, Len(sLine))
Pos = InStr(sLine, Car, bal)
ColumnView1[Key][a] = Left$&shy;(sLine, Pos - 1)
LOOP

Maintenant, nous voulons récupérer la valeur en 4eme position.
Il nous suffit simplement d'interroger notre columnview1 comme ceci :

myvalue = CInt(ColumnView1[key][3])

Allez ! juste pour le luxe, on arrondi à 1 chiffre après la virgule le résultat

myvalue = Round(myvalue, -1)

et voilà! nous avons fait l'acquisition de notre valeur analogique.
 A bientot.



Les propriétés du label

Rédigé par spheris Aucun commentaire
Classé dans : apprentisssage, gambas 2, Label, Tutoriel, Widget Mots clés : aucun
LES PROPRIETES DU LABEL


mylabel.png


Au travers de cette petite application en exemple je vous propose de découvrir les propriétés du label avec quelques petits exemples de code en illustration.

TELECHARGER L'APPLICATION

Code source :

' Gambas class file

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()
ME.Center
END

PUBLIC SUB bquit_Click()
ME.Close
END

PUBLIC SUB Button1_Click()
Label1.X = Label1.X + 4
END

PUBLIC SUB Button2_Click()
Label1.X = Label1.X - 4
END

PUBLIC SUB Button4_Click()
Label1.y = Label1.y + 4
END

PUBLIC SUB Button3_Click()
Label1.y = Label1.y - 4
END

PUBLIC SUB Button5_Click()
Label1.Width = Label1.Width - 4
END

PUBLIC SUB Button6_Click()
Label1.Width = Label1.Width + 4
END

PUBLIC SUB Button7_Click()
Label1.Height = Label1.Height - 4
END

PUBLIC SUB Button8_Click()
Label1.Height = Label1.Height + 4
END

PUBLIC SUB CheckBox1_Click()
SELECT CASE Label1.Visible
CASE TRUE
Label1.Visible = FALSE
CASE FALSE
Label1.Visible = TRUE
END SELECT
END

PUBLIC SUB Button9_Click()
Label1.ToolTip = TextBox1.Text
END

PUBLIC SUB Button10_Click()
Label1.Text = TextBox2.text
END

PUBLIC SUB ColorChooser1_Change()
Label1.Background = ColorChooser1.Value
END

PUBLIC SUB ComboBox1_Change()
Label1.Mouse = ComboBox1.Text
END

PUBLIC SUB ComboBox2_Change()
Label1.Border = ComboBox2.Text
END

PUBLIC SUB FontChooser1_Change()
Label1.Font = Font[FontChooser1.Value]
END

PUBLIC SUB Label1_Drop()
Label1.Text = TextBox3.Text
END

PUBLIC SUB TextBox3_Drag()
LAST.Text = TextBox3.Text
END

A bientôt
cool

Le composant gb.setting

Rédigé par spheris Aucun commentaire
Classé dans : Composants, gambas 2 Mots clés : aucun
GB.SETTING


Il est utile quelque fois dans votre application de sauvegarder des variables dans un fichier de configuration. (du style le fichier INI dans la firme à l 'écran bleu).
Le composant Gb.setting permet de réaliser cette fonction.
Très simple à utiliser, vous devez dans un premier temps cocher gb.setting dans les propriétés de votre projet.

Voici maintenant le mode d 'emploi :
Le fichier de configuration se trouve dans le répertoire /home/utilisateur/.config/gambas/nomdelapplication.conf
Comme le montre la photo ci dessus vous pouvez voir le contenu de ce fichier.
Il est classé par catégories entre crochets puis chaque variable est égal à une valeur de n 'importe quel type.

UTILISATION DU FICHIER DE CONFIGURATION

Pour écrire des données dans le fichier, utilisez cette commande
Settings[ Control/1 ] = TextBox1.text
Settings[ Control/2 ] = ValueBox1.Value
Settings[ maman/1 ] = TextBox1.text
Settings[ maman/2 ] = ValueBox1.Value

pour détailler la ligne 1 :
Setting[ nom de la catégorie/ variable ] = Valeur de la variable.

Pour lire une valeur depuis le fichier de configuration :

TextBox1.Text = Settings[ Control/1 ]
pour détailler cette ligne :
lit la valeur de la catégorie Control ,la variable 1 et stocke la dans la textbox1.text

Voilà pour aujourd 'hui.



Tchat sur facebook

Rédigé par spheris Aucun commentaire
Classé dans : divers, gambas 2, internet, Logiciels Mots clés : aucun
TCHATTER SUR FACEBOOK AVEC PIGDIN


Si vous souhaitez poser une question sur Gambas vous pourrez le faire au travers de PIDGIN sur facebook.
Voici comment configurer votre logiciel de messagerie instantanée :


fb1.png

Créez un nouveau compte IMMP (protocole facebook)

definissez votre nom d 'utilisateur ( pseudo à configurer dans votre profil facebook)
definissez le domaine tchat : chat.facebook.com
definissez la ressource : pidgin
tapez votre mot de passe facebook


fb2.png


Maintenant dans l 'onglet AVANCE, recopiez la même configuration que cette capture d 'ecran :



fb3.png


Enregistrez et voilà.
Maintenant vous pourrez vous connecter à Facebook sans firefox et tchatter plus agréablement.
Merci de votre attention.


INFORMATION:
 il se peut que vous ayez l 'erreur 503. Dans ce cas deconnectez vous de facebook avec votre navigateur et reconnectez vous.
Il se peut aussi que votre inscription a facebook ne soit pas complete ,ce qui induit l 'erreur  503.
);

Gambas 2 sur toutou linux

Rédigé par spheris Aucun commentaire
Classé dans : divers, gambas 2, systeme Mots clés : aucun
GAMBAS 2 SUR PUPPY LINUX

puppygb.png
Nous ne présentons plus cette ultra légère et rapide version de linux nommé PUPPY LINUX ou TOUTOU LINUX, version francisée.
La grande nouveauté est l 'arrivée d 'un package au format puppy PET qui permer de profiter de Gambas 2.7.

voici les 4 PET à télécharger :

http://puppy.b0x.me/software/packages/programming/gambas2-2.7.1.pet
http://puppy.b0x.me/software/packages/libs/Kommanderlibs.pet
http://www.fileden.com/files/2008/12/26/2239160/kdelibs4c2a.pet
http://puppy.b0x.me/software/packages/utilities/mp.pet



A l 'utilisation, gambas se révèle extrèmement rapide.sqlite fonctionne aussi parfaitement.
L 'interface qt par défaut est très moche. Il vous faudra customiser votre bibliothèque Qt de cette façon :

Décompressez et copier ce fichier qtrc  dans le répertoire utilisateur /home/user/.qt/ et relancez gambas.

Merci pour votre attention.
wink

);

Progressbar verticale

Rédigé par spheris Aucun commentaire
Classé dans : gambas 2, Progressbar Mots clés : aucun
UNE PROGRESSBAR VERTICALE


progressbarv.png
A l 'heure actuelle où je vous écris ces quelques lignes, il n 'existe pas pour GB2 une progressbar verticale.
J 'ai donc réalisé à l 'aide d 'une nouvelle classe ainsi qu 'à l 'aide précieuse d 'Eugéni, un contributeur non francophone, ce widget.




Utiliser le workspace

Rédigé par spheris Aucun commentaire
Classé dans : gambas 2, Tutoriels, Workspace Mots clés : aucun
AJOUTER ENLEVER UNE FORM

workspace2a.png
Je vous propose dans ce petit exemple d 'ajouter un form à l 'intèrieur d 'un autre à l 'aide d 'un WORKSPACE.

Pour ajouter il vous suffit d 'utiliser cette commande :
WORKSPACE1.ADD(fdeux)

pour enlever la fenetre :
fdeux.close

A bientôt


code source de l 'exemple :

PUBLIC SUB Form_Open()
ME.Center
END

PUBLIC SUB Button1_Click()
Workspace1.Add(fdeux)
END

PUBLIC SUB Button2_Click()
fdeux.Close
END

PUBLIC SUB Button3_Click()
ME.Close
END


Le composanr gb.sdl.sound

Rédigé par spheris Aucun commentaire
Classé dans : Composants, gambas 2, Tutoriels Mots clés : aucun
GB.SDL.SOUND



Bonsoir,
aujourd 'hui nous allons étudier le composant gb.sdl.sound qui vous permet de jouer des son à partir de Gambas.

SOUND
C 'est un son principalement au format wav qui peut être lu par la commande :

mysound = NEW Sound( /home/user/yeah.wav )
mysound.play

la premiere ligne charge en memoire et la 2eme ligne lance la lecture su son.
Malheureusement pour nous, nous ne pouvons pas arréter le son. Il s 'arrètera à la fin de sa lecture. Nous ne maitrisons pas non plus le canal sur lequel gambas le joue. Il est donc utile de ne pas coder comme ceci mais plutôt comme l 'exemple qui vient après.


CHANNELS
C 'est le canal sur lequel sera lu le son.Il y en a 32 utilisable, ce qui laisse flexibilité pour notre application. Il est facile de jouer un son avec cette commande :

mysound = NEW Sound( /home/user/yeah.wav )
Channels[3].Play(mysound, 0)

la 1ere ligne charge le son au format wav en memoire et la deuxieme ligne joue le son mysound sur le canal 3 en le répetant 1 fois (le zéro).


nous aurions pu mettre répétition en boucle avec -1
ou le répéter 2 fois en mettant 1, trois fois en mettant 2 etc...
L 'avantage de coder de cette façon c 'est que la commande Channels a des options interessantes comme :

PAUSE, PLAY STOP, et VOLUME
exemple :

Channels[3].Pause
Channels[3].Stop
Channels[3].Volume = 0.12

le volume doit être compris entre 0.1 et 1 soit de 1 à 100%


MUSIC
Cette commande permet de jouer une musique au format mp3 directement à partir du disque sans chargement en mémoire. Il n 'y a qu 'une seule piste disponible. Voic la commande à utiliser :

Music.Load( /home/user/essai.mp3 )
Music.Play



CDROM

Permet de piloter le CDROM sur le même principe que les channels.

voilà pour aujourd 'hui

Remarque : L 'erreur 11 apparait souvent lors de l 'utilisation de la bibliothèque Sdl. Il s 'agit d 'un bug lié à cette bibliothèque et no à Gambas.


Utiliser gnuplot sous gambas

Rédigé par spheris Aucun commentaire
Classé dans : dessin, gambas 2, Tutoriels Mots clés : aucun
Front end de Gnuplot

gnuplot.png

Hans, un contributeur allemand nous livre ici un excellent logiciel qui permet d 'utiliser le célèbre logiciel GNUPLOT pour déssiner des graphiques Gnuplot.
Avec ce logiciel, vous pourrez créer des graphiques à partir de fichier PLOT.
La particularité de ce logiciel réside aussi dans l 'utilisation du container Embedder qui permet d 'inclure dans un programme Gambas un procéssus externe.
Vous devez au préalable installer via synaptic, pacman, ou autre le paquet Gnuplot.
Merci à Hans pour sa contribution.

TELECHARGER LE FICHIER ICI


Selection multiple dans une gridview

Rédigé par spheris Aucun commentaire
Classé dans : apprentisssage, gambas 2, Gridview, Tutoriel, Widget Mots clés : aucun
Sélections multiples

multiple2.png

voici un exemple de sélection multiple de gridview et comment récuperer les coordonnées de la ligne ou colonne cliquée.


PUBLIC SUB Form_Open()
ME.Center
GridView1.Rows.Count = 15
GridView1.Columns.Count = 3
END

PUBLIC SUB Button1_Click()
ME.Close
END

PUBLIC SUB GridView1_Select()
TextArea1.Insert("ligne: " & GridView1.Row & " colonne: " & GridView1.Column & Chr$­­(10))
END

PUBLIC SUB Button2_Click()
TextArea1.Clear
END


informations : pour selectionner plusieurs lignes, maintenez la touche CTRL enfoncé puis cliquez  sur vos sélection. 


TELECHARGER L'EXEMPLE ICI

Modifier une cellule

Rédigé par spheris Aucun commentaire
Classé dans : gambas 2, Gridview, Tutoriel, Widget Mots clés : aucun
Modifier manuellement une cellule



multiple.png

Aujourd'hui une petite application en exemple pour vous montrer comment modifier une cellule à l'aide d'une INPUTBOX.
Lors d'un clic sur la grille, une inputbox s'ouvre et nous pourrons alors saisir le texte.
une fois cliqué sur OK, on insère le texte dans la cellule courante par la commande  :

GridView1.Current.Text = mamodif


Voici le code de l'exemple :

PUBLIC SUB Form_Open()
GridView1.Rows.Count = 5
GridView1.Columns.Count = 8

END

PUBLIC SUB GridView1_Click()
DIM mamodif AS String
mamodif = InputBox("Modifier une valeur", "Modification d'une valeur", GridView1.Current.Text)
GridView1.Current.Text = mamodif
END



TELECHARGER L'EXEMPLE ICI


A bientôt