Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Comment copier ce qui se trouve dans une variable string dans un fichier texte?
Hors ligne
string ls_mystring integer li_FileNum ls_mystring = "Mon texte à moi" li_FileNum = FileOpen("C:\Myfile.TXT", & LineMode!, Write!, LockWrite!, Append!) FileWrite(li_FileNum, ls_mystring ) FileClose(li_FileNum)
Hors ligne
Et comment faire si je veux écrire à la ligne (simuler la toucher entrer)?
j'ai essayé ça mais sa marche pas:
string ls_mystring integer li_filenum ls_mystring = "Bonjour" li_filenum = fileopen("C:\bobi1.txt", & linemode!, write!, lockwrite!, append!) filewrite(li_filenum, ls_mystring ) ls_mystring = "Comment vas tu?" filewrite(li_filenum, ls_mystring ) fileclose(li_filenum)
[edit] [ code=pb ]
Dernière modification par eRaSorZ (17-04-2007 19:17:19)
Hors ligne
Il existe déjà ton fichier ou non?
Hors ligne
Si ton fichier "bobi1.txt" existe déjà, essayes le code ci-dessous:
string ls_mystring integer li_filenum ls_mystring = "Bonjour ~r~n" li_filenum = fileopen("C:\bobi1.txt", & linemode!, write!, lockwrite!, append!) filewrite(li_filenum, ls_mystring ) ls_mystring = "Comment vas tu?" filewrite(li_filenum, ls_mystring ) fileclose(li_filenum)
Hors ligne
Quel est la difference entre ~r et ~n?
Et sinon, quel est la commande pour effacer tout le texte du le fichier texte?
Hors ligne
en général Aide Powerbuilder + Google permettent de répondre à pas mal de questions....
poche a écrit:
Quel est la difference entre ~r et ~n?
DOC PB : ~r Carriage return ~n Newline or linefeed
GOOGLE/WIKI: CRLF
Et sinon, quel est la commande pour effacer tout le texte du le fichier texte?
soit tu le supprimes, soit tu écrase avec fileopen en mode Replace! ...
Hors ligne
Mais Wikipédia ne donne pas la raison : pourquoi sous Windows, la touche "retour chariot" génére deux caractères ?
L'explication est simple : celà vient des machines à écrire.
Sur les machines à écrire, pour changer de lignes il fallait faire deux choses :
1) faire revenir le rouleau encreur à droite (ou le curseur à gauche) : retour chariot : ~r
2) descendre d'une ligne : ~n
M$ a repris ce système pour MS-DOS et pour des raisons de compatibilité ascendante, on se cogne ça sous Vista
Hors ligne
merci
Hors ligne
poche a écrit:
Et comment faire si je veux écrire à la ligne (simuler la toucher entrer)?
j'ai essayé ça mais sa marche pas:Code: pb
string ls_mystring integer li_filenum ls_mystring = "Bonjour" li_filenum = fileopen("C:\bobi1.txt", & linemode!, write!, lockwrite!, append!) filewrite(li_filenum, ls_mystring ) ls_mystring = "Comment vas tu?" filewrite(li_filenum, ls_mystring ) fileclose(li_filenum)
[edit] http://pbadonf.fr/forum/img/puntoolbar/ … bt_pre.png [ code=pb ]
Bonjour,
Si je ne m'abuse, tu peux faire suivre ton string de :
Char (13) + Char (10)
pour obtenir un retour charriot.
poche, pour ton information, voici les caractères spéciaux
~t Tab
~r Carriage return
~n Newline or linefeed
~" Double quote
~' Single quote
~~ Tilde
Hors ligne
HS
Ouaaah! Je savais pas que Vista était compatible avec les machines à écrire Remington
Fin HS
Dernière modification par foon (18-04-2007 08:29:43)
Hors ligne
Doctor Z a écrit:
Bonjour,
Si je ne m'abuse, tu peux faire suivre ton string de :Code: pb
Char (13) + Char (10)
CQFD!
char(13)+char(10)='~r~n'
Hors ligne
Et sinon, quel est la commande pour effacer tout le texte du le fichier texte?
a part :
li_filenum = fileopen("C:\bobi.rtf", & linemode!, write!, lockwrite!, Replace! ) filewrite(li_filenum, "" ) fileclose(li_filenum)
[edit] [ code=pb ]
Dernière modification par poche (18-04-2007 08:37:50)
Hors ligne
Exactement ce que tu as fait, mais tu peux supprimer la deuxième ligne (fileWrite).
Sinon, pour supprimer le fichier il existe FileDelete
Hors ligne
poche a écrit:
Et sinon, quel est la commande pour effacer tout le texte du le fichier texte?
a part :Code: pb
li_filenum = fileopen("C:\bobi.rtf", & linemode!, write!, lockwrite!, Replace! ) filewrite(li_filenum, "" ) fileclose(li_filenum)
ça ne te conviens pas ? trop de lignes de codes ? fais une fonction f_effacertoutletextedufichiertexte( as_nom_fichier )
Hors ligne
PS : merci d'utiliser la balise [ code=pb ] pour du code powerbuilder
Hors ligne
Si mon fichier texte n'existe pas, comment le créer par code?
Hors ligne
Deux solutions:
- Le créer à partir d'une datawindow avec la fonction SaveAs
- utiliser les API windows:
http://pbadonf.fr/forum/viewtopic.php?pid=194#p194
Dernière modification par foon (18-04-2007 09:34:14)
Hors ligne
poche a écrit:
Si mon fichier texte n'existe pas, comment le créer par code?
FileOpen
Hors ligne
eRaSorZ a écrit:
poche a écrit:
Si mon fichier texte n'existe pas, comment le créer par code?
FileOpen
Oups, effectivement il y a ça dans l'aide PB:
File not found If PowerBuilder does not find the file, it creates a new file, giving it the specified name, if the fileaccess argument is set to Write!.
Permettez-moi de me décerner le
Dernière modification par foon (18-04-2007 11:32:17)
Hors ligne
Comment savoir combien il y a de lignes dans mon fichier texte?
Hors ligne
Bonjour, merci, au revoir.
(comme ça c'est fait...)
Hors ligne
Hors ligne
poche a écrit:
Comment savoir combien il y a de lignes dans mon fichier texte?
Bon Poche, je te donne pas le code, mais une manière de procéder:
- Ouvrir le fichier en mode lineMode! et Read!
- Boucler sur le fichier en lisant ligne à ligne avec la fonction FileRead
- Dans la boucle, tu utilises un compteur pour déterminer le nombre de ligne lues
- Après la boucle, ne pas oublier le FileClose
Et voilà...
Hors ligne