ReadFile() est valable pour un chargement dynamique, donc solution valable si on veut par exemple utiliser plusieurs fichiers de langues.
Je crois que ce que souhaite PhM c'est d'incorporer le fichier dans l'EXE ?
Utiliser
IncludeBinay est possible, mais cette commande va charger tout le fichier tel quel dans une zone mémoire. Il faudra ensuite utiliser des instructions comme
PeekS() pour extraire les données texte et les replacer dans des variables. Faisable mais un peu long.
Une solution plus simple est d'utiliser
IncludeFile et de formater le fichier de traduction comme s'il faisait partie du code source de la section
DataSection. IncludeFile va donc faire comme un simple copier/coller au moment de compiler.
Exemple de fichier traduction.txt
Code : Tout sélectionner
Data.s "Hello", "Bonjour"
Data.s "World", "Monde"
Data.s "EOT", ""
Note le EOT: (End OF Text) que j'utilise pour arrêter ensuite la lecture. Comme ceci, on peut ajouter des lignes et lire ensuite avec Read sans s'occuper du nombre de ligne ni provoquer une IMA.
Ensuite, s'il s'agit de traduction, le mieux est d'utiliser une Map
Exemple (un peu verbeux)
Code : Tout sélectionner
NewMap Traductions$()
Repeat
Read.s Tmp_Us$
If Tmp_Us$ = "EOT" : Break : EndIf
Read.s Tmp_Fr$
AddMapElement(Traductions$(), Tmp_Us$)
Traductions$() = Tmp_Fr$
ForEver
Debug "--- Lecture Map"
ForEach Traductions$()
Debug MapKey(Traductions$()) + " = " +Traductions$()
Next
End
DataSection
Traductions:
IncludeFile "PHM\Traductions.txt"
EndDataSection
Ce qui donne