Ben, voilà, merci de l'intérêt !
En fait ce que je demande
existe presque depuis toujours dans pas mal de langage...
Pour autant qu'il inclus la notion de gestion multitâche de ses fichiers !
"Extrait de doc QBX ou PDS7 de 1998, mais existait aussi avec QB45, Mais existe
aujourd'hui dans pas mal de langage
Syntaxe
LOCK [#]numéro de fichier [,{enregistrement |[début] TO fin}]
[instructions]
UNLOCK [#]numéro de fichier [,{enregistrement | [début] TO fin}]
Ces instructions sont employées dans un environnement … réseau où plusieurs
tâches peuvent faire appel au même fichier.
Argument Description
---------------|----------------------
numéro de fichier Numéro sous lequel le fichier a été ouvert.
enregistrement Numéro de l'enregistrement ou de l'octet devant
------------------- être protégé; enregistrement peut être n'importe
------------------- quel numéro compris entre 1 et 2 147 483 647
------------------- (soit 2^31 -1). Il peut atteindre une longueur
------------------- de 32 767 octets.
début : Numéro du premier enregistrement ou du premier octet … protéger.
fin : Numéro du dernier enregistrement ou du dernier octet … protéger.
Pour les fichiers en mode binaire, les arguments enregistrement, début et fin représentent le numéro d'un octet par rapport au début du fichier. Le premier octet dans un fichier est l'octet numéro 1.
Pour les fichiers … accès aléatoire, les arguments enregistrement, début et fin correspondent au numéro
d'un enregistrement par rapport au début du fichier. Le premier enregistrement porte le numéro 1.
Les instructions LOCK et UNLOCK sont toujours employées de pair. Les arguments de LOCK et UNLOCK, s'il sont utilisés, doivent être identiques. Voir le deuxième exemple ci-dessous.
Lorsqu'un seul enregistrement est spécifié, seul cet enregistrement est verrouillé ou déverrouillé. Lorsqu'une série d'enregistrements est spécifiée en omettant celui du commencement (début), tous les enregistrements depuis le premier jusqu'à la fin de la série (fin) sont verrouillés ou déverrouillés. En l'absence d'arguments d'enregistrement, LOCK protège le fichier entier, tandis que UNLOCK d‚verrouille le fichier entier.
Si le fichier a été ouvert pour l'E/S séquentielle, LOCK et UNLOCK agissent sur le fichier entier, quelle que soit la plage spécifiée par début et fin.
LOCK et UNLOCK ne peuvent être exécutées que sur les versions de DOS ou OS capables de gérer les réseaux
Forme Anglaise dans QBX...
LOCK #Filenumber, record& | start& To end&
- #Filenumber : The number with wich the file was opened
- record& : The number of the record or byte to be locked
Ce qui suit est optionnel !
Mais permet entre autre de verrouiller plusieurs enregistrement ou une séquence de Bytes
- start& : The number of the first record or byte to be locked
- end& : The number of the last record or byte to be locked
UNLOCK #Filenumber,record& | start& To end&
Je crois que cela se passe de commentaires, c'est vieux,
ça existe dans d'autres langages
comme actuellement PowerBasic,
Syntax : LOCK [#] filenum& [, {record&& | start&& TO end&&}]
Remarks : LOCK prevents another process from accessing a record, range of records, byte,
or range of bytes in a file opened as file number filenum&.
If the file was opened in random-access mode, record&&, start&&, and end&& specify record numbers. When used with binary mode files, record&&, start&&, and end&& specify byte positions, starting from either zero or one (the default).
If a record is specified, only that record (or byte) is locked. Otherwise, a range of records (or bytes) is locked, from start&& to end&&.
If no records are specified, or if the file was opened in sequential mode, the entire file is locked.
All records (or bytes) to be locked must be subsequently unlocked using the UNLOCK statement. Multiple locks may be placed on a file, and locks may be unlocked in any order. However, the parameters used for each UNLOCK statement must exactly match those used for the previous corresponding LOCK statement.
Exemple en PowerBasic !:
OPEN "PATIENTS.DAT" FOR RANDOM AS #1 LEN = 1024
' determine the record number to retrieve
LOCK #1, recnum
GET #1, recnum
' process the record here
PUT #1, recnum
UNLOCK #1, recnum
CLOSE #1
@falsam
Si c'est de bases de données dont tu parles, tu pourrais utiliser des bases de données Comme MySQL ou PostGreSQL ? tu n'aurais plus de question à te poser.
D'accord avec toi, sauf que c'est justement ce que je veux éviter en ayant DANS PB, deux petite instruction qui ferais le travaille sans intervention externe... Quoi qu'il se passe à l'extérieur mon application sera toujours sous mon contrôle !
@
flaith
Oui c'est une bonne solution, comme une autre, mais évidement à créer et à gérer...
on utilisant un générateur d'applications (que personne connait : "Yes You Can"), il y avait cette fonction qui permettait de locker/unlocker un enregistrement et cela tournait pourtant sous Dos 6.22
Moi j'ai connus, tout comme cela existe naturellement dans Windev, et un peu d'auto-valorisation mon "Progene 3", un générateur aussi (1986-1994 ou 5 ?

) Et des langages pure et dure !
@
Dobro
Oui tu as tout a fait raison, comme
Warkering d'ailleurs !
Le seule problème que par exemple dans une entreprise ou il y a une vingtaine de personnes ou plus travaillant sur la même application traitant des mêmes fichiers clients, fournisseurs, prospect, journalier etc... On ne peut bloquer les fichiers ouverts par l'un ou l'autre,
car généralement ils sont tous ouvert et auxquels chaque opérateur n'accède qu'a une ou l'autre partie des fiches de ces fichiers simultanément. Que le problème est qu'aucuns ne peux accéder à une fiche en cours de traitement par l'un des x opérateurs !
En plus de cela, généralement, il y a interaction entre les fiches des fichiers eux même. En compta par exemple quand on entre un débit d'un coté, cela va créditer une autre fiche de l'autre. Donc dans ce cas l'accès à ce client précis dois verrouiller la fiche du client mais aussi les deux autres parties ou seront crédité et débité du montant de la transaction... Et seulement la fin de l'opération libère les autres fichiers.
C'est dans ce genre de situation que le LOCK et UNLOCK sont pratiques... Il ne verrouille pas TOUT les fichiers dont on a besoin. Ils s'occupent seulement de ce que tu demande.
En PureBasic comme les fichiers peuvent-être considéré comme des fichiers ou séquentiels
ou Binaires avec accès direct au Byte près.
Il suffirait 
que cela s'applique aux Bytes
soit la forme :
LOCK #Filenumber, start& To end& et UNLOCK #Filenumber, start& To end&
Ces deux instruction permettrait alors de faire du MULTITÂCHE et ce FACILEMENT sans nécessairement avoir recours à quelque forme de système externe a PureBasic !
Cela en réalité donnerais a mon avis un réelle PLUS à PB, lui ouvrant les portes de ce qui se fait en GESTION !
Non pas de sa petite affaire familiale avec un poste, mais aux grosse entreprise avec plein de postes !
C'est cela du MultiTâche (MuliTasking).
Mais bon, ce n'est qu'un avis !

----------------------------------------
PS: Attention je ne cherche pas un truc ou astuce... Il y en à plein dans vos réponses et quelques unes dans ma tête.
C'est un APPORT a PureBasic si c'est possible et si cela intéresse l'Auteur (les) !
A moins que eux ne désire pas aller dans ce sens !
A moins aussi que nous utilisateurs puissions faire le poids pour revendiquer une ou l'autre chose
