Page 1 sur 1

[RESOLU] Mise a la ligne

Publié : lun. 19/sept./2011 8:44
par Anonyme 2
Yo,
J'aimerais savoir comment faire une mise a la ligne dans un string, merci !

Re: Mise a la ligne

Publié : lun. 19/sept./2011 9:11
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

Re: Mise a la ligne

Publié : lun. 19/sept./2011 20:29
par Anonyme 2
...

Re: Mise a la ligne

Publié : lun. 19/sept./2011 21:17
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.

Re: Mise a la ligne

Publié : lun. 19/sept./2011 21:29
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.

Re: Mise a la ligne

Publié : mar. 20/sept./2011 14:31
par Anonyme 2
...

Re: Mise a la ligne

Publié : mar. 20/sept./2011 18:23
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.

Re: Mise a la ligne

Publié : mar. 20/sept./2011 22:20
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 ?

Re: Mise a la ligne

Publié : mer. 21/sept./2011 14:02
par Anonyme 2
...

Re: [RESOLU] Mise a la ligne

Publié : dim. 03/juin/2012 8:52
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)

Re: [RESOLU] Mise a la ligne

Publié : dim. 03/juin/2012 9:23
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()


Re: [RESOLU] Mise a la ligne

Publié : dim. 03/juin/2012 9:44
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

Re: [RESOLU] Mise a la ligne

Publié : dim. 03/juin/2012 10:18
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

Re: [RESOLU] Mise a la ligne

Publié : dim. 03/juin/2012 11:09
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