Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
J'utilise Pb PB 12.6 Build 3506.
J'ai un réel soucis lors de la lecture d'un fichier zip ansi (par exemple 186 955 caractères).
****** Test n° 1 ******
lblob_lect = blob("") li_file = FileOpen(ls_fic_64_ansi,StreamMode!,Read!,Shared!,Append!,EncodingANSI!) ll_len_blob = FileReadEx(li_file,lblob_lect) FileClose(li_file)
-> La chaine lue lblob_lect a la bonne longueur mais on récupère des caractères chinois.
****** Test n° 2 ******
lblob_lect = blob("") OleObject lole_fso // TristateFalse (0) Ouvre le fichier en ASCII. // TristateTrue (-1) Ouvre le fichier en Unicode. // TristateUseDefault (-2) Ouvre le fichier en utilisant le paramètre système par défaut lnTristate = -1 lole_fso = create OleObject li_ret = lole_fso.ConnectToNewObject("Scripting.FileSystemObject") lblob_lect = lole_fso.OpenTextFile(ls_fic_64,1,true,lnTristate).readall() ll_len_blob = len(lblob_lect) destroy lole_fso
-> lnTristate = 0 -> La chaine lue lblob_lect fait 10 caractères et visiblement les 10 caractères sont corrects
-> lnTristate = -1 -> La chaine lue lblob_lect n'a pas la bonne longueur et on récupère des caractères chinois
-> lnTristate = -2 -> La chaine lue lblob_lect fait 10 caractères et visiblement les 10 caractères sont corrects
****** Test n° 3 ******
OleObject lole_objStream blob lblob_data lblob_lect = blob("") lole_objStream = create OleObject li_ret = lole_objStream.ConnectToNewObject("ADODB.Stream") lole_objStream.CharSet = "us-ascii" lole_objStream.Open lole_objStream.LoadFromFile(ls_fic_64_ansi) lblob_lect = lole_objStream.ReadText() ll_len_blob = len(lblob_lect) lole_objStream.close() destroy lole_objStream
-> La chaine lue lblob_lect fait 10 caractères et visiblement les 10 caractères sont corrects
Merci d'avance pour votre aide
Jean-Paul
Hors ligne
Salut,
Est-ce que tu ne chercherais pas à lire un fichier texte ANSI à l'intérieur d'un fichier ZIP (binaire) ?
Hors ligne
Non, je veux lire tout un fichier zip ANSI afin de le stocker dans une variable blob pour ensuite la crypter en base64 et uploader un site web.
Par ailleurs, quand j'ouvre un fichier avec notepad ou notepad++ et que l'encodage est réputé UTF8, l'ordre FileEncoding(«fichier») Retourne EncodingANSI!.
Hors ligne
Mais un fichier zip étant un fichier binaire tu ne peux le lire en clair sans passer par une lib...
Hors ligne
« passer par une lib... » Quid ?
Hors ligne
par exemple cette lib :
https://programmingmethodsit.com/knowle … erbuilder/
ou celle là :
https://www.topwizprogramming.com/freec … bwapi.html
Hors ligne
Bonjour,
Ou passer au minimum à une version Powerbuilder 2019, la compression zip est nativement prise en charge (CompressorObject).
Hors ligne