Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: 1.95 du 27 Février 2013: fonction ReadBlockFromBinaryFile... Mer 27 Fév 2013 - 0:34 | |
| Nouvelle version: KGF.dll V1.95 du 27 Février 2013Nouvelle fonction: KGF.dll: res% = dll_call4("ReadBlockFromBinaryFileToString",adr(nom$),n%,p%,adr(buf$)) KGF_SUB.bas: ReadBlockFromBinaryFileToString(nom$,n%,p%) Cette fonction lit le nombre n% de caractères à partir de la position p% dans le fichier nom$ et retourne le résultat sous forme de chaîne de caractères dans buf$ (KGF.dll) ou ReadBlockFromBinaryFileToString$ (KGF_SUB.bas). aucun contrôle n'est fait - les n% caractères sont retournés quelque soient les circonstances. Le programme de démo est adapté à cette fonction. Remplissez les zones Longueur et Start, puis cliquez sur le bouton "Lecture Block". On choisit alors un fichier dans un dialogue d'ouverture, puis le programme affiche les caractères lus dans le mémo: - Code:
-
' demo_fichiers_binaires.bas
label lecture, creation, ajout, remplacement, block
dim res%, buf$, nom$, fill$, i%, n%, p%, flag%
KGF_initialize("KGF.dll")
open_dialog 1 save_dialog 2
height 0,600
button 101 : top 101,10 : left 101,10 : caption 101,"Lecture" on_click 101,lecture button 102 : top 102,40 : left 102,10 : caption 102,"Création" on_click 102,creation button 103 : top 103,70 : left 103,10 : caption 103,"Ajout" on_click 103,ajout
memo 201 : top 201,10 : left 201,200 : width 201,300 : height 201,300
alpha 202 : top 202,340 : left 202,200 : caption 202,"Longueur:" alpha 203 : top 203,340 : left 203,280 : caption 203,"Start:" alpha 204 : top 204,340 : left 204,360 : caption 204,"Remplissage:" edit 212 : top 212,360 : left 212,200 : width 212,70 edit 213 : top 213,360 : left 213,280 : width 213,70 edit 214 : top 214,360 : left 214,360 : width 214,30 text 212,"1" : text 213,"1" : text 214,"0" alpha 205 : top 205,390 : left 205,200 : caption 205,"Nouveau contenu:" edit 215 : top 215,410 : left 215,200 : width 215,300 check 216 : top 216,440 : left 216,200 : width 216,300 caption 216,"Tronquer/compléter les données si nécessaire" button 104 : top 104,470 : left 104,200 : caption 104,"Remplacement" on_click 104,remplacement button 105 : top 105,470 : left 105,350 : caption 105,"Lecture Block" on_click 105,block
end
lecture: nom$ = file_name$(1) if nom$="_" then return ReadBinaryFileToString(nom$) clear 201 item_add 201,ReadBinaryFileToString$ return creation: nom$ = file_name$(2) if nom$="_" then return if file_exists(nom$)=1 message "Refusé." return end_if if count(201)=0 message "Vide." return end_if buf$ = "" for i%=1 to count(201) buf$ = buf$ + item_read$(201,i%) + chr$(13) + chr$(10) next i% WriteStringToBinaryFile(nom$,buf$) return ajout: nom$ = file_name$(1) if nom$="_" then return if count(201)=0 message "Vide." return end_if buf$ = "" for i%=1 to count(201) buf$ = buf$ + item_read$(201,i%) + chr$(13) + chr$(10) next i% AppendStringToBinaryFile(nom$,buf$) return
remplacement: nom$ = file_name$(1) if nom$="_" then return buf$ = text$(215) n% = val(text$(212)) p% = val(text$(213)) fill$ = chr$(val(text$(214))) flag% = checked(216) ReplaceStringInBinaryFile(nom$,buf$,fill$,n%,p%,flag%) return block: nom$ = file_name$(1) if nom$="_" then return n% = val(text$(212)) p% = val(text$(213)) ReadBlockFromBinaryFileToString(nom$,n%,p%) clear 201 item_add 201,ReadBlockFromBinaryFileToString$ return
#INCLUDE "KGF_SUB.bas"
Cette fonction permet de lire un nombre quelconque de caractères, à partir d'une position quelconque dans le fichier. | |
|