[RESOLU] Mise a la ligne

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Anonyme 2
Messages : 183
Inscription : ven. 18/mars/2011 11:53

[RESOLU] Mise a la ligne

Message par Anonyme 2 »

Yo,
J'aimerais savoir comment faire une mise a la ligne dans un string, merci !
Dernière modification par Anonyme 2 le mer. 21/sept./2011 14:03, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Mise a la ligne

Message par falsam »

En espérant que tu parles bien du Stringgadget, le code ci-dessous te montre la manière de définir un string multiligne.

Code : Tout sélectionner

Enumeration
  #MainForm
  #String
EndEnumeration

OpenWindow(#Mainform, 0, 0, 320 , 200, "Utilisation de #PB_EventType_ReturnKey")
TextGadget(#PB_Any, 10, 20, 100, 22, "String multiligne")
StringGadget(#String, 10, 45, 300, 60, "S", #ES_MULTILINE)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      End
      
    Case #PB_Event_Gadget
      If EventGadget()=#String And EventType()=#PB_EventType_ReturnKey
        MessageRequester("Information", "Houla c'est un roman que vous écrivez")
      EndIf
  EndSelect
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Anonyme 2
Messages : 183
Inscription : ven. 18/mars/2011 11:53

Re: Mise a la ligne

Message par Anonyme 2 »

...
Dernière modification par Anonyme 2 le dim. 19/janv./2014 0:12, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Mise a la ligne

Message par falsam »

Insere #CRLF$ entre chaque ligne

Code : Tout sélectionner

String$=""
For i= 1 To 10
  String$ + "Ligne "+ Str(i) + #CRLF$
Next 
Debug String$
PS : Tu copie le résultat du debug dans un nouvel onglet de ton éditeur et tu veras le résultat.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Mise a la ligne

Message par falsam »

Autre solution est d'écrire directement dans un fichier grâce à l'utilisation de WriteStringN (Aide en cliquant sur ce lien)

Code : Tout sélectionner

Enumeration
  #Monfichier
EndEnumeration


If CreateFile(#Monfichier, "monfichier.txt") ; création d'un nouveau fichier texte...
  For i=1 To 10
    WriteStringN(#Monfichier, "Ligne "+Str(i)) ; écriture de 10 lignes (suivies du code 'Fin de Ligne')
  Next
  CloseFile(#Monfichier) ; ferme le fichier précédemment ouvert et enregistre les données
  Else
    MessageRequester("Information","Impossible de créer le fichier!")
EndIf
Sauvegarde et compile ce code puis ouvre le fichier crée.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Anonyme 2
Messages : 183
Inscription : ven. 18/mars/2011 11:53

Re: Mise a la ligne

Message par Anonyme 2 »

...
Dernière modification par Anonyme 2 le dim. 19/janv./2014 0:12, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Mise a la ligne

Message par falsam »

Dzoumaka a écrit :Le #CTRLF$ ne marche pas.
Le WriteStringN() marche, mais comment recuperer toutes les lignes d'un fichier texte, car le WriteString ne recupere que la 1ere ligne..
#CTRLF$ ????? je ne connais pas :) regarde bien l'exemple que j'ai donné plus haut (#CRLF$)


WriteString comme l'indique la documentation "Ecrit une chaîne de caractères dans le #Fichier" donc ..... ne récupere rien.

pour lire un fichier texte généré avec WriteStringN, tu utilises ReadString dans une boucle comme le montre le code ci-dessous.

Code : Tout sélectionner

Enumeration
  #Monfichier
EndEnumeration


;/// Création du fichier et ecriture ligne par ligne ///
;Création d'un nouveau fichier texte
If CreateFile(#Monfichier, "monfichier.txt")
  
  ;Ecriture des données ligne par ligne (On va en mettre 10)
  For i=1 To 10
    WriteStringN(#Monfichier, "Ligne "+Str(i))
  Next
  
  ;Fermeture du fichier (Important pour valider tes lignes)
  CloseFile(#Monfichier) 
    
Else
  ;Pas de chance ton disque est moisi et il est impossible de créer le fichier  
  MessageRequester("Information","Impossible de créer le fichier!")
 
EndIf


;/// Maintenant nous allons lire ton fichier texte ligne par ligne ///

MessageRequester("Information", "Lecture du fichier ligne par ligne")
;Ouverture du fichier en mode read uniquement 
If ReadFile(#MonFIchier, "monfichier.txt")
  
  ;tant que la fin du fichier n'est pas atteint (Eof : End Of File)
  While Eof(#MonFIchier) = 0 
    ;Affiche ligne par ligne le contenu du fichier
    Debug ReadString(#MonFIchier) 
  Wend
  
  ;Fermeture du fichier
  CloseFile(#MonFIchier)
    
EndIf
Plonges toi dans la documentation.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Mise a la ligne

Message par case »

pour quelqu'un qui voulais commencer par coder un pentest, ça doit être dur de pas savoir lire un pauvre fichier texte...

sinon tu l'as lue la doc ?
ImageImage
Anonyme 2
Messages : 183
Inscription : ven. 18/mars/2011 11:53

Re: Mise a la ligne

Message par Anonyme 2 »

...
Dernière modification par Anonyme 2 le dim. 19/janv./2014 0:13, modifié 1 fois.
Shade
Messages : 53
Inscription : sam. 05/juin/2010 15:40

Re: [RESOLU] Mise a la ligne

Message par Shade »

salut tous le monde
je déterre un peut le sujet

voila moi mon soucis ces pas lire / écrire dans le fichier texte mais récupérer une partie d'une ligne du fichier texte

Exemple :
Prénom : Shade
Age : 30

est moi je voudrais récupérer Shade et 30
le problème pour l'instant ces que j'arrive a récupérais toute la ligne mais pas ce que je voudrais

je vous remercie d'avance de votre aide les Ami(e)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [RESOLU] Mise a la ligne

Message par Ar-S »

Il y a plein de solutions, c'est la façon dont tu vas agencer ce que tu ecris dans ton fichier texte qui importe...
Tu peux faire comme un fichier CSV, c'est à dire en utilisant un séparateur :

Code : Tout sélectionner

bob,marley,20
Ensuite un stringfield te permettra de récupérer les données (que tu stockes dans une liste chainée)

Tu peux aussi simplement utiliser les commandes de PB pour créer un fichier pref...

Code : Tout sélectionner

;Ecrire
If CreatePreferences("tonfichier_pref.txt")
  PreferenceGroup("POTES")
    WritePreferenceString("NOM", "Bob")
    WritePreferenceString("PRENOM", "Marley")
    WritePreferenceLong("AGE", 20)
close preferences()

;Lire
OpenPreferences("tonfichier_pref.txt")

  PreferenceGroup("POTES")
    Debug ReadPreferenceString ("NOM", "")
    Debug ReadPreferenceLong ("PRENOM", "")
    Debug ReadPreferenceFloat("AGE", 0)
ClosePreferences()

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Shade
Messages : 53
Inscription : sam. 05/juin/2010 15:40

Re: [RESOLU] Mise a la ligne

Message par Shade »

merci beaucoup

je teste sa de suite je te tien au jus

pour le fichier texte pref ces pas possible dans mon cas, car le fichier texte est creez par un autre logiciel
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [RESOLU] Mise a la ligne

Message par Backup »

sinon tu lis la ligne qui t'interresse dans un fichier , de cette façon:
mettons que tu veuille recuperer la 7em ligne d'un fichier "monfichier.txt"

Code : Tout sélectionner

If ReadFile(#MonFIchier, "monfichier.txt")
 
 for ligne=0 to 5
    ReadString(#MonFIchier) ; lit les 6 premiere lignes dans le vide
next ligne

ligne$=ReadString(#MonFIchier) ; la 7em ligne qui nous interresse 
 Debug ligne$  ;on l'affiche dans le Debugger ( lancer ce prg avec Debugger on )
 
  ;Fermeture du fichier
  CloseFile(#MonFIchier)
   
EndIf
Shade
Messages : 53
Inscription : sam. 05/juin/2010 15:40

Re: [RESOLU] Mise a la ligne

Message par Shade »

re ta 1er solution est la bonne sa marche nikel

ces nikel maintenant je suis en train de m'amuser a découper mes ligne pour récupéré le ou les mot qui m’intéresse

je te remercie sa m’enlève une épine du pied
Répondre