Après windows pour les nuls, voici PB pour les bons (ou presque).

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