Kezdőoldal » Számítástechnika » Programozás » Pascal: olyan programot...

Pascal: olyan programot szeretnék írni, amely az egész könyvtárstruktúrát bejárja és a fájlok SHA1 lenyomatát kiszámolja és abszolut útvonallal beírja egy fájlba. Hogy lehetne ezt megoldani?

Figyelt kérdés

Sajnos én csak egyetlen fájlra tudtam megírni és ez sem abszolut útvonallal kerül bele...

Hogy lehetne ezt átírni (nem Delphi-re és nem Lazarus-ra, hanem Free Pascal-os megvalósításra gondolok), hogy hiba nélkül bejárja az egész meghajtót és beírja az eredményeket?

A programozási rész érdekelne, a "dir/b/s>lista.txt" módszerrel meg lehetne oldani, de a Pascal-os megvalósítás érdekelne.


Mennyire lenne bonyolult ezt átírni?


Program Fajl_lenyomat;


uses sha1;


var

f : text;

FileHash : string;

begin

FileHash := SHA1Print( SHA1File ( ParamStr ( 1 ) ) );

assign(f, 'sha1sums');

ReWrite(f);

WriteLn(f,paramstr(1)+': '+filehash);

Close(f);

end.



2016. júl. 22. 19:26
1 2
 11/14 A kérdező kommentje:

Azt, hogy "nem Delphi, nem Lazarus", azzal arra akartam utalni, hogy ne kelljen hozzá e két környezet.

Mondjuk egyszerűbb lett volna ha azt írom, hogy simán Free Pascal alatti megvalósítás kellene.

Azt akartam elkerülni e körülményeskedéssel, hogy olyan kódot linkeljen valaki, ami csak Delphi alatt fut le.


Nem tudom miért releváns e szempontból, hogy a hasítófüggvénnyel jöttem, simán meg kell hívni és kész, nem magát a hasító algoritmust akartam megírni. :-)


Nagyon igyekeztem figyelni, hogy ne legyen a kód pocsék, bíztam benne, hogy talán csak a "Program" kis vagy nagybetűvel történő írását tévesztettem el, de ezekszerint úgy tűnik mást is.


Igen, én vagyok, fantasztikus, hogy már sok hónapja kérdeztem és ennyi idő után is megismersz. :-)

Nem tudom, miből. :-)

Sajátosan fogalmazok? :-)

2016. júl. 23. 14:15
 12/14 SimkoL ***** válasza:

Kicsit késón esett le, hogy a Lazarus-t és a Delphi-t grafikus környezetként gondoltad - A Lazarus tiszta Free Pascal, semmi extra Delphi-s dialektus -

Mit akarsz az értékekkel kezdeni ?

Mint ahogy írtam is a file kezelés, keresés nagyon alap dolog ezt illene ismerni.

Hogy miről gondoltam, hogy te vagy ? Rajtad kívül itt senki sem foglalkozik ilyen témával Pascal nyelven. C-ben már segítettem itt ilyen olyan titkosító algoritmusban, de igazából csak te vagy ilyen kitartó a Pascal-lal :)


Off:

A kód szépségével kapcsolatban:

assign, paramstr és hibakezelés


Bocs, befejezem, mert megjöttek a lány unkáim :)

2016. júl. 23. 14:36
Hasznos számodra ez a válasz?
 13/14 A kérdező kommentje:

Engem csak nagyon érdekelt, hogy miképpen lehet ilyet megvalósítani.

A titkosítással már nem foglalkozom, valamikor régebben letöltöttem az AES algoritmusát Pascal-ban, nagyon rémítő volt. :-)

Érdekelne, hogy adott fájlrendszeren változnak -e bizonyos fájlok időnként indokolatlanul, ezért foglalkoztat a program megírása.

Az miért van, hogy ha például egyesével szeretném megnyitni a fájlokat és az alábbi sor elé a kódban:

ShaLista.Add(Lista.Strings[i] + ' : ' + SHA1Print(SHA1File(Lista.Strings[i])));

beírom:

Assign(f,Lista.Strings[i]);

Reset(f);

egészen addig meg is nyitogatja a fájlokat (fájlbezárásra is ügyelek), míg ékezetes fájlnév nem jön, mert akkor a "file not found" hibaüzenettel kiakad.

Tudom ez más problematika és a jelenlegi kód működéséhez nem szükséges, de nagyon foglalkoztat, hogy megoldották -e ezt Free Pascal-ban és ha igen, hogy lenne kikerülhető.

TFileStream-mel kezelve megoldódna?

2016. júl. 24. 04:08
 14/14 SimkoL ***** válasza:
Vannak még a Free Pascal-nak is 'régi' dolgai amik nem kezelik tökéletesen a szóközt, unicode karaktereket tartalmazó fájlneveket. Javaslom az AssignFile használatát vagy átmásolásukat egy tmp fájlba, egy WIN API rutinnal ha másképpen nem megy.
2016. júl. 25. 18:04
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!