Forum Rules Petite remarque importante :

Lorsque vous postez un probléme en relation avec CRITERIA, merci de préciser la version du criteria, le systéme d'exploitation et la version de l'executeur ainsi que toutes informations permettant de connaitre le contexte d'execution . cela évite de poster un message pour vous demander ces précisions !!!

Pages: (3) [1] 2 3   ( Go to first unread post ) Reply to this topicStart new topicStart Poll

> HOWTO : Récupérer des fichiers SI / MC cassés
dachrix
Posted: 02/09/02 15:40
Quote Post


Super User
**

Group: Membre
Posts: 76
Member No.: 45
Joined: 24/07/02
Submissions: None Submitted
Downloads: No Files Downloaded



Je suis entrain de faire la migration de nos applications développées en interne vers CRITERIA.

Sur les environ 450 fichiers qui composent les données, 17 sont cassés. C'est à dire que lors d'un SVAM, l'utilitaire bloque sur un enregistrement et génère une erreur 53.

Comment faire pour récupérer ces fichiers ?!

CRIREST ne marchant que sur les .D et .I déja passés sous CRITERIA, à ma connaissance rien de fourni avec TWIN 2.x ne peut répondre à mon besoin.

Merci de votre aide les PROLOGUEUX ;)

.daChrix
PMUsers WebsiteMSN
Top
root
Posted: 02/09/02 20:02
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



la seule solution connue , à ma connaissance , c'est de faire un petit prog pour chaque fichier cassé.
Tu parcourt le fichier par des down et tu le rééecri. Quand tu trouve une erreur, note la clé. Puis tu fais la meme chose avec un up
Ensuite, faut voir pour les parti de fichier entre les 2 clés
Bon courage
Salutations
stéphane
PM
Top
dachrix
Posted: 07/09/02 09:18
Quote Post


Super User
**

Group: Membre
Posts: 76
Member No.: 45
Joined: 24/07/02
Submissions: None Submitted
Downloads: No Files Downloaded



C'est ce que je me suis attaché à faire. Mon problème réside en fait dans la détection de fin de fichier.

Ex: Mes enregistrements font 128 octets. Lors de la lecture du dernier secteur, comment savoir si le dernier enregistrement est la partie de 0 @ 127 oubien celle de 128 @ 255 ??? La fin de fichier est elle balisée ?

D'avance merci encore !!!

:x SI Suxxxx :roll:
PMUsers WebsiteMSN
Top
dachrix
Posted: 07/09/02 09:23
Quote Post


Super User
**

Group: Membre
Posts: 76
Member No.: 45
Joined: 24/07/02
Submissions: None Submitted
Downloads: No Files Downloaded



Et encore un petit add-on à ma question précédente :

Toujours sur un exemple d'enregistrement de 128 octets : je lis 2 enregistrement à chaque READ/60. Je voudrai faire un petit compteur qui s'affiche à l'écran au fur & à mesure que je lis les enregistrements. Sachant que mon fichier comporte selon mot plus de 260.000 enregistrements environs, je suis perdu pour savoir comment faire... Ya une question de limitation de type, non ? BCD ?

Un petit exemple siouplé ;) Je ne maitrise pas suffisamment l'ABAL pour m'en tirer comme un charme.

A bientot.
PMUsers WebsiteMSN
Top
root
Posted: 07/09/02 10:31
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



Tu ne semble pas utilisé la méthode que j'ai indiqué par les down et up, la lecture par des accés direct me parait risquée.


1er prg:
Assign du fichier
Open du fichier
Assign du nouveau fichier
Open du nouveau fichier
initialisation de la clé du fichier à la valeur minimum ( voir en focntion du type des elements qui compose la clé et en focntion des valeurs possible en général , 0 pour les # et les % et blanc pour les $)

search sur fichier
down
si erreur<>0 alors arret
sinon
affichage de la valeur de clé
insert dans nouveau fichier et retour sur le down

2eme prg:
cette fois si tu initialise la clé avec la valeur maxi et tu remplace le down par un Up

en fait, tu lis le fichier par les 2 bouts et tu note là où ca s'arrete
apres faut voir ce qu'il y a entre la derniére clé lu en down et la derniére clé lu en up

Voila
a+
Salutations
Stéphane Roy
PM
Top
dachrix
Posted: 07/09/02 11:37
Quote Post


Super User
**

Group: Membre
Posts: 76
Member No.: 45
Joined: 24/07/02
Submissions: None Submitted
Downloads: No Files Downloaded



J'ai bien compris tes explications. Elles me serviront pour remonter des fichiers dont je n'ai pas le moyen de retrouver les marqueurs et surtout de valider la cohérence de ce que j'ai pu remonter en AD.

J'ai finalement pu ce matin (j'aime travailler les samedi matin !!!) remonter un fichier de plus de 260.000 enregistrements en procédant par accès direct au fichier, d'autant que j'avais un moyen de retrouver le marqueur.

Heureusement que t'es là steph les weekends :P , parce que la hotline de prologue m'a laissé choir comme une vieille chaussette vendredi, prenant à mon sens mes pb de fichiers pétés par dessus la jambe et partant en weekend @ 16h :evil: . Ces fichiers dont je me suis oqp ce matin contiennent les comptes de copropriétés de plusieurs dizaine d'immeubles, & les sauvegardes qui nous avions étant aussi pétées, s'il m'était impossible de remonter certains fichiers, cela signifiait purement & simplement la cessation d'activité du cabinet qui m'emploie !!!

Bref, tu me passera ton RIB pour la petite gatterie :lol: !!!

Merci, bon weekend @ tous ! & merci encore !!!
PMUsers WebsiteMSN
Top
root
Posted: 07/09/02 12:11
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



Il est vrai que je supporte seul les frais d'hebergement du site et d'achat du domaine, mais je ne suis pas là pour faire de l'argent ;-)
toute fois, toutes les contributions sont les bienvenues ;-)

Bon courage dans tes récupérations de fichiers

Pour le syndic , nous on a un soft pour gérer tout ca, et pas encore de
client à monaco ;-)

Salutations
PM
Top
Gianni
Posted: 07/09/02 12:22
Quote Post


Hyper User
*****

Group: _Membre
Posts: 806
Member No.: 53
Joined: 13/08/02
Submissions: None Submitted
Downloads: 11



Vous avez un problème si l'erreur il est présent deux fois ou plus: up et down ils ne sont pas suffisants.
Si la clee est numérique:
k=0
do
k=k+1
search=old ....
select err
case 0
insert=new ...
x="ok" ;x=variable on old file
modif=old ...
case 78
;nothing to do
case 48
print=1:tab(1,1),"end"
pause " CR"
stop
default ;err 53 err ..
print=1:tab(1,1),"erreur ",err," on key ",k
pause " CR"
endsel
loop

ensuite sur le vieux fichieur est possible trouvez le enregistrement non transféré (sans ok)

Salutations

Gianni
PMUsers WebsiteMSN
Top
dachrix
Posted: 09/09/02 09:32
Quote Post


Super User
**

Group: Membre
Posts: 76
Member No.: 45
Joined: 24/07/02
Submissions: None Submitted
Downloads: No Files Downloaded



Suite de mes problèmes de récup de fichiers SI... Je procède par AD pour ce faire (vivi stef, je vais le faire en SI ;) aussi !!!)

Mes enregistrements font 768 octets, la clé est composée de 2 char de 30 et 1 octets. Et c'est ce weekend en essayant de le reconstruire que je me suis appercu qu'il y a une plétore d'enregistrements vides (avec des clés IDENTIQUES avec des espaces): 4ème @ 2304, 8ème @ 5376, 9ème @ 6144, etc... Vérifiable avec ULTRAEDIT.

Evidemment, je pars en err 81 quand j'essaye d'enregistrer la seconde clé vide dans mon fichier de destination. Mais là n'est pas le problème, je skip les enregistrements vides tout simplement. Mais comment est il possible d'insérer dans un fichier SI 2 clés identiques, c'est normalement IMPOSSIBLE !!! Il y a donc un soucis EVIDENT avec le SI-XP (je suis sous Twin 2.3b1, SI 2.2e-P3 et MC 1.9a-P3).

Je ne vois pas d'autre explication puisqu'après concertation avec le développeur d'origine du soft et analyse ses sources, il n'y a aucun patch ou accès direct au fichier SI. Tous les enregistrements sont fait de facon standard avec des INSERT.

Alors, Quid ?
PMUsers WebsiteMSN
Top
root
Posted: 09/09/02 20:10
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



il y a la zone marqueur qui pour une meme valeur de clé peut permettre un insert je penses sans erreur 81.
Je ne vois que cette explication
le marqueur c'est une zone en # placée entre la clé et la data.

Je ne vois que ca !!!

Salutations
Stéphane Roy
PM
Top
Churlet
Posted: 10/09/02 13:17
Quote Post


Hyper User
*****

Group: _Membre
Posts: 520
Member No.: 16
Joined: 01/06/02
Submissions: None Submitted
Downloads: 2



Il s'agit bien du marqueur quand il à la valeur zéro l'enregistrement est supprimé logiquement dans le SI ou dans critéria le principe est le même la suppression physique d'un enregistrement est réalisé par SVSI/RTSI ou SVAM/RTAM. la suppression d'un bloc de clé ou d'enregistrement est réalisée si il s'agit du dernier bloc.

PROLOGUE 86-LA METHODE D'ACCES SEQUENTIEL INDEXEE- GUIDE DU PROGRAMMEUR - VERSION 1.2
Le fichier des cles est composé en noeud de la façon suivante :

1) Adresse sur deux octets en notation inversée du noeud contenant les clés inférieur à celle définie a droite
2)Index associé à la clé définie à droite
3)Clé
4) Adresse des données associé, cette adresse est composé en deux partie. la première sur un octet, représente l'emplacement dans le secteur. la deuxième sur deux octets contient le numéro de secteur en notation inversée relatif au début du fichier des données ou débute l'enregistrement
5) Adresse en notation inversée du noeud contenant les clés supérieures à celle de la clé définie à gauche

un noeud n'est pas forcément plein. la fin d'un noeud est détectée sur rencontre d'un index à zéro

A+
PMEmail PosterUsers Website
Top
root
Posted: 10/09/02 15:00
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



je ne m'étais donc pas trompé.
Il faut donc que tu fasse le travail qu'aurait fait le SVSI , en ne traitant pas les enregistrements supprimés :-)
allez, au travail maintenant ;-)

Salutations
Stéphane Roy
PM
Top
dachrix
Posted: 16/09/02 09:51
Quote Post


Super User
**

Group: Membre
Posts: 76
Member No.: 45
Joined: 24/07/02
Submissions: None Submitted
Downloads: No Files Downloaded



J'essaie de parcourir en SI un fichier dont voici la définition de la clé :

CODE


field=m,cletemp

dcl cle_jnl$=3

dcl cle_datec#(3)

dcl cle_chr=4



J'initialise la clé à ses valeurs minimales :

CODE


cle_jnl=space(3)

cle_datec(1)=0

cle_datec(2)=0

cle_datec(3)=0

cle_chr=0



J'assigne mon fichier:

CODE


assign=10,"TOTO",si:&openinerr,e



Et je fais le search avec les valeurs minimales dans l'idée de me positionner en début de fichier pour faire un parcours séquentiel :

CODE


SEARCH.M=10,cletemp:next,e,reglu,len(reglu)



Pourquoi je pars systématiquement en erreur 78 (clé inexistante) ? Normalement, souhaitant me mettre en tête de mon fichier, je ne devrai pas avoir ce genre de message.

Note : Bien évidemment, mon fichier a une floppée d'enregistrement, il n'est pas vide !

Merci de votre aide !
PMUsers WebsiteMSN
Top
root
Posted: 16/09/02 10:50
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



un search sur une clé inexistante donne forcement une erreur 78 , c'est normal
suite à cette erreur 78 tu dois faire un down pour te positionner sur le 1er enregistrement.
Autre solution, un assign + open et directement un DOWN te positionne directement sur le 1er enregistrement. MAis à verifier


Bon courage
Salutations
Stéphane Roy
PM
Top
jerome
Posted: 16/09/02 12:39
Quote Post


Ultra User
****

Group: Membre
Posts: 317
Member No.: 26
Joined: 07/06/02
Submissions: None Submitted
Downloads: 5



Le Open/Down renvoie bien le 1er enregistrment

mais attention dans la construction de la clé de recherche
il ne faut pas oublier, le chr etant BCD de faire :
chr= FIX(0)
PMEmail PosterUsers WebsiteMSN
Top
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:

Topic Options Pages: (3) [1] 2 3  Reply to this topicStart new topicStart Poll

 

webcron.org Get Firefox! prologue-community.org est monitoré par ikoula.fr Referenceur Gratuit www.prologue-community est mis en évidence sur internet grace à daubresse.fr
moteur de recherche - referencement
Conformément à l'article 34 de la loi "Informatique et Liberté" vous disposez d'un droit d'accès, de modification, de rectification et de suppression des données qui vous concernent.
Pour l'exercer, merci de nous contacter : CONTACT US

www.prologue-community.org n'est pas enregistré à la CNIL
www.prologue-community.org est hébergé sur visit.fr

www.prologue-community.org est indépendant de la société Prologue
Une grande partie des logiciels et outils cités sur www.prologue-community.org sont des produits et marques déposées par la société Prologue


MKPortal M1.1 Rc1 ©2003-2005 All rights reserved
Page generated in 0.00664 seconds with 2 queries