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.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
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