Page 1 sur 1

Entrées sorties.

Publié : lun. 09/nov./2020 19:32
par alainc88
Bonjour.
Nouveau depuis aujourd'hui sur ce forum, j'ai acquis la licence de PureBasic il y a 48 heures.
Je découvre ce langage qui n'a en définitive de "Basic" que le nom :D
J'avoue que je suis un peu dérouté, car j'avais programmé il y de nombreuses année et durant de longues années avec Quick Basic Compiler 4.5 et les versions suivantes, sous Dos, mais aussi en Pascal. J'avais réalisé de nombreux logiciels professionnels avec ce QB45 et versions suivantes.
Sur Purebasic, j'ai réussi à utiliser les fichiers (écriture/lecture, etc...). J'ai aussi réussi à réaliser des grilles de saisie, puis y saisir des données, les sauvegarder dans des fichiers, et les rapatrier dans des variables.
Mais malgré mon exploration de la doc et des forums, je ne vois toujours pas comment afficher sur l'écran les données saisies et récupérées depuis un fichier. Par exemple, nom, prénom, téléphone, etc... pour donner un exemple.
Il y a bien des instructions print et printN, mais elles ne fonctionnent qu'en mode console.
Quelqu'un aurait-il quelques lignes de code à me communiquer pouvant me montrer comment on peut afficher sur son écran des données lues dans un fichier?
Merci d'avance !

Re: Entrées sorties.

Publié : lun. 09/nov./2020 20:06
par Kwai chang caine
Bonjour Alainc88 :D

Moi aussi j'ai fait des années de QB45 et créé des programmes de gestion immobilière et de compte bancaire sous DOS, que je me servais encore il y a quelques mois 8)
Ça nous rajeunis pas :mrgreen:
En tout cas bienvenue dans notre famille :wink:

Pour afficher par exemple un fichier tu as plein de façons
Comme tu l'as déjà trouvé tu as le mode console

Mais si tu créé une interface graphique, tu fais une fenetre et tu mets dedans tous les Gadgets dont tu as besoin dont certains peuvent afficher du texte
Voilà un exemple simple utilisant l'EditorGadget, mais tu as le StringGadget, le ListIconGadget, Le ListViewGadget, etc ...
Tu as une entrée et une sortie de Gadget et de fichier bien sûr :wink:

Tu peux aussi voir un résultat rapide dans la fenêtre du debugger avec l'instruction "Debug"

Code : Tout sélectionner

Enumeration
 #MaFenetre
 #MonEditor
EndEnumeration

#WindowWidth  = 390
#WindowHeight = 350

FichierTexte.s = DossierTemporaire$ + "Le premier affichage de ''alainc88''"

OpenWindow(#MaFenetre, 100, 200, #WindowWidth, #WindowHeight, "PureBasic - Gadget Demonstration", #PB_Window_MinimizeGadget)
EditorGadget(#MonEditor,  0, 0, #WindowWidth, #WindowHeight)

DossierTemporaire$ = GetTemporaryDirectory()
Canal = CreateFile(#PB_Any, FichierTexte, #PB_Ascii)

; Creation d'un fichier texte
If Canal
 
 For i = 1 To 10
  WriteStringN(Canal, "MonTexte ligne " + Trim(Str(i)), #PB_Ascii)
 Next
  
 CloseFile(Canal)
 
EndIf

; Lecture et affichage dans un des gadget du fichier texte en lecture seule (Dans cet exemple un EditorGadget)
Canal = ReadFile(#PB_Any, FichierTexte, #PB_Ascii)

If Canal
 
 For i = 1 To 10
  MaLigne$ = ReadString(Canal)
  AddGadgetItem(#MonEditor, -1, MaLigne$)
  Debug "Texte lu du fichier = " + MaLigne$
 Next
  
 CloseFile(Canal)
 
EndIf

; On fait le ménage
DeleteFile(FichierTexte)

; Et maintenant on lit le gadget directement
 For i = 1 To 10
  Debug "Texte lu direct de l'editeur = " + GetGadgetItemText(#MonEditor, i - 1)
 Next

Repeat
 Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow

End  

Re: Entrées sorties.

Publié : mar. 10/nov./2020 8:58
par kernadec
bjr à tous
merci kcc, bel exemple :D
pour compléter on peut aussi aller voir dans la doc les fonctions :
DrawText(X, Y, Texte$ [, CouleurTexte [, CouleurFond]])
StringGadget(#Gadget, X, Y, Largeur, Hauteur, Texte$ [, Options])

cordialement

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 200, 200, "DrawText Exemple", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If CreateImage(0, 200, 200) And StartDrawing(ImageOutput(0))
      DrawingMode(#PB_2DDrawing_Transparent)
      Box(0, 0, 200, 200, RGB(255, 255, 255))
      For i = 1 To 30
        DrawText(Random(200), Random(200), "Hello World!", RGB(Random(255), Random(255), Random(255)))
      Next i
      StopDrawing() 
      ImageGadget(0, 0, 0, 200, 200, ImageID(0))
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  EndIf

Code : Tout sélectionner

 ; Démonstration des options possibles pour le gadget de saisie de texte...
  If OpenWindow(0, 0, 0, 322, 205, "Les options de StringGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    StringGadget(0, 8,  10, 306, 20, "Gadget saisie de texte normal...")
    StringGadget(1, 8,  35, 306, 20, "1234567", #PB_String_Numeric)
    StringGadget(2, 8,  60, 306, 20, "Gadget saisie de texte en lecture seule", #PB_String_ReadOnly)
    StringGadget(3, 8,  85, 306, 20, "minuscules...", #PB_String_LowerCase)
    StringGadget(4, 8, 110, 306, 20, "majuscules...", #PB_String_UpperCase)
    StringGadget(5, 8, 140, 306, 20, "Gadget saisie de texte sans bordure", #PB_String_BorderLess)
    StringGadget(6, 8, 170, 306, 20, "Mot de passe", #PB_String_Password)
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf




Re: Entrées sorties.

Publié : mar. 10/nov./2020 9:53
par alainc88
Bonjour Kwai chang caine et bonjour kernadec.

Merci pour vos réponses et vos messages de bienvenue.
Quel plaisir de voir un forum si efficace avec des gens si compétents !
Je vais essayer les lignes de code fournies, et en tirer de bonnes pratiques :o

Oui, l'évocation du QB 45 ne nous rajeunit pas...
Que dire de plus, quand mon premier PC fut un TRS80 avec 16 ko de RAM ! :lol:
Il fonctionne d'ailleurs toujours.

Merci encore pour vos réponses.
Alain

Re: Entrées sorties.

Publié : mar. 10/nov./2020 13:56
par Shadow
Bienvenue alainc88 sur le forum !
Comme tu le dis, PureBasic qui n'a en définitive de "Basic" que le nom !
Il est très puissant, tu peu en faire des tas de choses avec !
Très très performent, très compacte, SuperBasic quoi :D

Re: Entrées sorties.

Publié : mar. 10/nov./2020 13:57
par Ar-S
Bienvenue alainc88.

Re: Entrées sorties.

Publié : mar. 10/nov./2020 18:56
par SPH
Avec PureBasic, on peux faire des editeurs, des editeurs d'editeurs, etc... :lol:

Re: Entrées sorties.

Publié : mar. 10/nov./2020 19:39
par venom
SPH...


Salut alainc88, bienvenue sur le forum. A bientôt






@++

Re: Entrées sorties.

Publié : mar. 10/nov./2020 20:59
par Kwai chang caine
alainc88 a écrit :Quel plaisir de voir un forum si efficace
La puissance de PB c'est aussi ses forums (Le deuxième effet kiss cool) :D
Moi aussi, venant du VB6, j'ai été surpris au début de la rapidité de réponse des forums PB 8O (Car il y en a plusieurs)
Avec PB on se sent jamais seul...enfin pas trop longtemps :wink: et crois moi en plusieurs dizaines d'années...... des questions à la con....j'en aurais posé quelques unes :mrgreen:
Mais ils sont quasi infatigables nos forums 8)
Bienvenue chez toi

Re: Entrées sorties.

Publié : dim. 22/nov./2020 18:24
par alainc88
Bonjour et merci à tous les intervenants pour leur code et leurs messages sympathiques de bienvenue !