Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » [RESOLU] Passer un caractère ascii dans un filewrite

#1 07-12-2009 17:13:51

julien  
Membre completement Geek
Date d'inscription: 02-09-2008
Messages: 127
Pépites: 10,665
Banque: 0

[RESOLU] Passer un caractère ascii dans un filewrite

Bonjour,

j'écris dans un fichier des chaines de caractères que je lui insère une par une, je dois, à un moment, le faire passer à la ligne.

Le caractère ascii pour faire cette action est 13 mais je ne sais pas comment passer ce paramètre dans le filewrite.

Merci pour votre aide.

Dernière modification par julien (08-12-2009 11:12:02)

Hors ligne

 

#2 07-12-2009 17:18:27

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5122
Pépites: 97,200
Banque: 2,147,483,647

Re: [RESOLU] Passer un caractère ascii dans un filewrite

Bonjour, Char(13) ou ~n
(voire en plus un Char(10) ou ~r)


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 07-12-2009 17:34:51

julien  
Membre completement Geek
Date d'inscription: 02-09-2008
Messages: 127
Pépites: 10,665
Banque: 0

Re: [RESOLU] Passer un caractère ascii dans un filewrite

voilà mon code :

Code: pb

li_fichier = fileopen(ls_server + ls_nouvfichier + ".txt", StreamMode!, Write!, LockReadWrite!, Append!, EncodingANSI!)
  
  DO WHILE ll_nb <= lds_cheque.rowcount()
    
    DO WHILE li_colone <= 39
      ls_colone = lds_cheque.getitemstring(ll_nb, li_colone)
      filewrite(li_fichier, ls_colone)
      li_colone = li_colone + 1
    LOOP
    filewrite(li_fichier, char(10))
    li_colone = 1
    ll_nb = ll_nb + 1
    
  LOOP


Ca m'insère bien le caractère ascii, le soucis et que lorsque que j'ouvre mon fichier texte, le caractère ascii est remplacé par un carré et le retour à la ligne n'est pas visible (dans le bloc note)

Y a t-il une solution pour remédier à ce problème ?

Hors ligne

 

#4 07-12-2009 17:57:29

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 30-05-2006
Messages: 4685
Pépites: 1,025
Banque: 2,147,483,647
Site web

Re: [RESOLU] Passer un caractère ascii dans un filewrite

essayes  char(13) + char(10),   ou inversement  char(10) + char(13)

A+++


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#5 07-12-2009 18:00:01

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 748
Pépites: 1,028,846
Banque: 171,170,849,654

Re: [RESOLU] Passer un caractère ascii dans un filewrite

Bonjour,

Pour passer à la ligne suivante, il faut faire appliquer le CRLF :

CR : carriage return => retour chariot
LF : Line feed => saut de ligne

La ligne d'un fichier doit donc se terminer : ~r~n.

(Nos réponses se sont croisées, mais cela doit revenir au même)

Hors ligne

 

#6 07-12-2009 18:02:40

julien  
Membre completement Geek
Date d'inscription: 02-09-2008
Messages: 127
Pépites: 10,665
Banque: 0

Re: [RESOLU] Passer un caractère ascii dans un filewrite

Cool merci ca fonctionne !
Pourquoi il faut mettre les deux ?

Hors ligne

 

#7 07-12-2009 19:27:58

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 748
Pépites: 1,028,846
Banque: 171,170,849,654

Re: [RESOLU] Passer un caractère ascii dans un filewrite

Lorsque que tu es dans un éditeur de texte tu frappes la touche entrée pour passer à la ligne suivante.

Ce n'est pas un caractère, mais deux caractères qui sont insérés, le fameux CRLF (carriage return - line feed).

La terminaison de ligne des fichiers textes sous unix est différente.
C'est pour cela qu'ils nécessitent d'être convertis lorsque tu passes d'un système à l'autre.

Hors ligne

 

#8 08-12-2009 09:06:12

julien  
Membre completement Geek
Date d'inscription: 02-09-2008
Messages: 127
Pépites: 10,665
Banque: 0

Re: [RESOLU] Passer un caractère ascii dans un filewrite

ok ! Merci pour ces explications !

Maintenant, je me heurte à un autre problème:
Pourquoi, lorsque l'on passe une chaine de caractères dans un filewrite, les espaces en fin de chaine sont supprimés ?
Par exemple si je fais : filewrite(li_fichier, "test    "), dans le fichier je trouve "test".

Hors ligne

 

#9 08-12-2009 10:43:30

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 748
Pépites: 1,028,846
Banque: 171,170,849,654

Re: [RESOLU] Passer un caractère ascii dans un filewrite

Bonjour,

Tu crées des fichiers textes avec le "fileopen" que tu montres dans l'exemple : StreamMode!. Le StreamMode! concerne la création de fichiers binaires, de plus dans ce mode l'encodage est ignoré :

When you create a new binary file using stream mode, the encoding parameter, if provided, is ignored.

Pour ton cas, l'utilisation du mode TextMode! me paraît plus adapté.

Hors ligne

 

#10 08-12-2009 11:11:02

julien  
Membre completement Geek
Date d'inscription: 02-09-2008
Messages: 127
Pépites: 10,665
Banque: 0

Re: [RESOLU] Passer un caractère ascii dans un filewrite

J'ai trouvé une autre solution, je rajoute les espaces en ascii à la fin

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » [RESOLU] Passer un caractère ascii dans un filewrite

Pied de page des forums

Propulsé par FluxBB 1.2.22