Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


Génération des fichiers filtres ASCII multi-plateforme

Date de publication : 27/12/05

Par Thomas Schlumberger (Responsable Intl Tech Support)
 

Génération des fichiers filtres ASCII multi-plateforme


Produit : 4D 2004  ·  Plateforme : Mac & Win


Même s'il existe des commandes pour convertir des fichiers selon la plateforme (sachant que les données dans 4D sont toujours au format Macintosh), il faut quelquefois utiliser un fichier Filtre ASCII pour gérer les conversions de texte.

Voici une méthode utilitaire qui permet de créer ces fichiers de filtre ASCII.

Ici, si vous choisissez « 3 » dans le dialogue, un filtre « Filtre_Mac_vers_Windows.4FI » prêt à l'emploi sera enregistré à côté du fichier de structure.

Note : pour un filtre personnalisé, vous pouvez adapter la méthode pour un autre contenu.

C_ENTIER LONG($i)
C_TEXTE($vtContenu_Filtre)
C_ENTIER LONG($vlplateforme)
C_TEXTE($vtChemin;$vtFiltreASCII)
C_BLOB($vxBlob)
C_ENTIER LONG($vlplateforme;$vlSystem;$vlmachine)

PROPRIETES PLATE FORME($vlplateforme;$vlSystem;$vlmachine)

$vtReponse:=Demander("1=M>ISO, 2=ISO>M, 3=M>W, 4=W>M";"1 (Mac vers ISO)";"Créer le Filtre ASCII")

Si ((Num($vtReponse)>0) & (Num($vtReponse)<5))  `Choix valide ("1", "2", "3" ou "4")
   $vlTypeFiltre:=Num($vtReponse)
   FIXER TAILLE BLOB($vxBlob;256)
   Boucle ($i;0;255)
      $vxBlob{$i}:=$i
   Fin de boucle
   $vtContenu_Filtre:=BLOB vers texte($vxBlob;Texte sans longueur )

      ` ----- remplacer le contenu des 128 derniers caractères -----
   Au cas ou
      : ($vlTypeFiltre=1)
         Boucle ($i;129;256)
            $vtContenu_Filtre[[$i]]:=Mac vers ISO(Caractere($i-1))
         Fin de boucle
         $vtFiltreASCII:="Mac vers ISO"
      : ($vlTypeFiltre=2)
         Boucle ($i;129;256)
            $vtContenu_Filtre[[$i]]:=ISO vers Mac(Caractere($i-1))
         Fin de boucle
         $vtFiltreASCII:="ISO vers Mac"
      : ($vlTypeFiltre=3)
         Boucle ($i;129;256)
            $vtContenu_Filtre[[$i]]:=Mac vers Windows(Caractere($i-1))
         Fin de boucle
         $vtFiltreASCII:="Mac vers Windows"
      : ($vlTypeFiltre=4)
         Boucle ($i;129;256)
            $vtContenu_Filtre[[$i]]:=Windows vers Mac(Caractere($i-1))
         Fin de boucle
         $vtFiltreASCII:="Windows vers Mac"
   Fin de cas

   $vtChemin:=Demander("Nom du nouveau filtre ASCII ("+$vtFiltreASCII+")";"Filtre_"+Remplacer chaine($vtFiltreASCII;" ";"_")+".4FI")

   Si (OK=1)
      $vhDocRef:=Creer document($vtChemin)  `Crée le fichier avec la bonne extension.
      Si (OK=1)
         ENVOYER PAQUET($vhDocRef;$vtContenu_Filtre)
         FERMER DOCUMENT($vhDocRef)  `Ferme le document
         Si ($vlplateforme#Windows )
            CHANGER CREATEUR DOCUMENT($vtChemin;"4D06")
            CHANGER TYPE DOCUMENT($vtChemin;"FILT")
         Fin de si
      Fin de si
   Fin de si

Fin de si



Valid XHTML 1.1!Valid CSS!

Copyright © 2005 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Contacter le responsable de la rubrique 4D