www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Cobol varying record size

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 59.92
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Sre Nov 08, 2006 6:01 pm    Naslov sporočila:  Cobol varying record size Odgovori s citatom

Ali mogoče kdo ve kako COBOL zapisuje stavke z spremenljivo dolžino na disk ?

Kje in na kak način je zapisana dolžina stavka?

_________________
Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
frenki
Moderator
Moderator



Pridružen-a: Ned 23 Feb 2003 21:26
Prispevkov: 6736
Aktiv.: 28.37
Kraj: Ljubljana (JN76GB)

PrispevekObjavljeno: Sre Nov 08, 2006 7:12 pm    Naslov sporočila:   Odgovori s citatom

Kolikor se spomnim odvisno od tipa datoteke. Če gre za MF Cobol imaš nekje v rts običajno nekaj na temo fhutil Confused fhinfo s katerim prebereš organizacijo datoteke, pozicijo indexa, dolžino zapisa, ... fh..nekaj.. pa zna reč prekipat tudi v ascii datoteko.

Je že nekaj časa minilo od zadnje uporabe ...

Lp, Frenki
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.66
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Čet Nov 09, 2006 12:16 pm    Naslov sporočila:   Odgovori s citatom

WORKING-STORAGE SECTION
FD TransFile
RECORD IS VARYING IN SIZE
FROM 8 TO 31 CHARACTERS.

http://www.csis.ul.ie/COBOL/Course/SequentialFiles3.htm#part3

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 59.92
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Čet Nov 09, 2006 11:20 pm    Naslov sporočila:   Odgovori s citatom

Jur to sem že gledal, a mi ne pomaga, ker ne pove kako je stavek zapisan v datoteki.

Imam namreč sledeč problem:
Uničen disk ! Več kot 30 % slabih sektorjev. Uspel sem rešiti nekaj podatkov. Nekatere stvari so cele in delujejo. Ena zelo velika (take imajo manj možnosti) datoteka pa ima napako. Pregled vsebine datoteke pove, da je cca 12 MB podatkov v relativno dobri kondiciji. Nekje v datoteki je okvarjeno par bitov, no recimo by. Lahko celo nekaj recordov. Vsekakor ne toliko, da to bilo opazno v smislu nelogičnih podatkov.
A ker je v datoteki nekaj narobe, s cobol programi ne morem več dostopat do nje. Če bi ugotovil način zapisa stavkov variabilne dolžine, bi stvar verjetno popravil vsaj toliko, da bi izločil pokvarjeni del in prepisal ostalo.

_________________
Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.52

PrispevekObjavljeno: Čet Nov 09, 2006 11:57 pm    Naslov sporočila:   Odgovori s citatom

Darko, ti morda pomaga kaj od tega:

format zapisa podatkov in ideje za pretvorbo v druge formate (kar je prakticno isto, kar ti pocnes)

nekaj podobnega, a bolj oskubljeno

potencialna tezava pri neposredni transformaciji in omenjena resitev

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.66
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Pet Nov 10, 2006 11:05 am    Naslov sporočila:   Odgovori s citatom

Cobol sem uporabil pred mnogo leti, na CDC machini (Cyber), tako da nimam idej. Verjetno pa so variabilni zapisi ločeni med seboj z <cr><lf> oziroma 0xa0xd ali kaj podobnega. Z nekim dump programom poglej, kakšno je ločilo med dvema dobrima recordoma. Tam, kjer so napake bo neka oslarija, ki jo popraviš na roke. Na mestu napake pokvarjeno datoteko napolniš z nekim definiranim stringom (na primer AAAAAAAA....), in vmes dodaš vsake toliko časa ločila, da recordi ne bodo predolgi. Cobol bi moral Aje prebrati, programsko pa jih pomečeš stran.

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 59.92
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Sob Nov 11, 2006 12:42 pm    Naslov sporočila:   Odgovori s citatom

Ni ravno tako enostavno....

Tudi sam sem mislil, da je delimiter <cr><lf>, pa žal ni. Dodaten problem je v tem, da je rešena datoteka neke vrste arhiv. Algoritem arhiviranja pa ni čisto znan. Vsekakor to ni kak od znanih arhivskh programov. Narejen je pravtako v cobolu. deluje pa nekako takole. Če se v datoteki pojavi zaporedoma več enakih znakov, se jih prešteje, se številu doda 200 in to zapiše kot by naslednji by pove kakšen znak se ponavlja. Omeneni način deluje do 55 ponavljanj. To kar sem povedal je samo del algoritma, ki je meni poznan.
Iz povedanega in pa iz definicije polj, ki jih posedujem sem nekako uspel zaključiti da je record delimiter tu drugačen. In sicer (hex) 40 00 00 xy vw. Pri čemer se xy in vw ne ponavljajo, ampak vsebujejo neko meni nepoznano vsebino. Če pri dekodiranju spustim teh 5by dobim sicer uporabne stavke z vsebino, a so med seboj zamaknjeni za n by. n se giblje med 0 in 7. Preostali prostor, ki predstavlja zamik je popolnjen z nedefinirano vsebino in ne predstavlja koristne informacije.
Za silo bi sicer šlo tako, da bi v stavku iskal znano polje, ki je v vseh stavkih enako in odštel offset tega polja do starta recorda. Na ta način bi določil start vsakega posameznega recorda.
Se pa pri tem načinu bojim kake polomije. Program za to početje imam že narejen. V teku pa je preverjanje tako dobljenih podatkov.

Vsekakor bom povedal kakšni bodo rezultati.

_________________
Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.66
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Pon Nov 13, 2006 10:16 am    Naslov sporočila:   Odgovori s citatom

Mogoče je tisti xy vw povezan z dolžino zapisa. Nekako tako kot pascalski stringi: prvi bajt pove dolžino stringa.

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 59.92
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Pon Nov 13, 2006 10:47 am    Naslov sporočila:   Odgovori s citatom

Sem že pomislil, in na veliko preverjal, žal brez pametnih rezultatov.

Sem pa uspel rešiti podatke, brez, da bi dojel kako algoritem za dekriptiranje deluje. Tudi zapisa variabilnega stavka cobola nisem potuhtal. Nič zato, to je tako in tako zastarel programski jezik.

Z okvarjenega diska sem rešil več takih arhivskih datotek. Datoteke so starejših datumov.

Primerjava datotek je razen dolžine odkrila kar nekaj razlik v vsebini. Ker se je coboljski program za dearhiviranje pobunil že v prvi tretini datoteke, so me zanimale razlike predvsem tam. Z primerjavo 7 datotek med seboj sem s poskušanjem ustvaril 6 različnih končnih arhivov, ki sem jih s programom potem poskusil rekriptirati.

Pri četrtem mi je uspelo. Kljub temu je v datoteki vidna ena napaka v nazivu nekega artikla. Ostalo naj bi bilo v redu.

Deklica, ki uporablja računalnik v trgovini, je dojela pomen backupa! Backup je torej treba delati, četudi se mesece, leta ne zgodi nič takega. Prej ali slej se bo ! Še posebej, če ga nimaš!

_________________
Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 6 dni


Powered by phpBB © 2001, 2005 phpBB Group