Condividi:        

programmazione di utility per hd danneggiati

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

programmazione di utility per hd danneggiati

Postdi danrevella » 28/11/06 16:38

Salve a tutti!!
Recentemente con l'utilizzo di alcune utility freeware sono riuscito a recuperare con ottimi risultati ben 4 vecchi hd che credevo persi.
Il lavoro ho dovuto farlo manualmente utilizzando diversi programmi: ognuno di essi mi risolveva un problemino alla volta.
Il tempo di esecuzione per il recupero in modo manuale era però estenuante, da qui l'idea di scrivere un wrapper per le varie utility in modo da automatizzare quasi tutto il lavoro.
Però non sono un programmatore, e mentre per la parte assembly ho già chi mi sta aiutando avrei bisogno di un piccolo programmino in grado di estrarre dei dati da un file di testo, salvandoli in un nuovo file.
Se qualcuno potesse essere così gentile da darmi una mano..... ;-)
Naturalmente l'utility sarà freeware ed a disposizione di chiunque.

Vi prego, fatevi vivi...

Ciao a tutti
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35

Sponsor
 

Postdi tekanet » 28/11/06 20:06

In che linguaggio?
tekanet
Utente Senior
 
Post: 173
Iscritto il: 03/09/02 10:22
Località: Milano sud-ovest

Postdi danrevella » 28/11/06 20:17

Ciao!!
possibilmente in C utilizzando un compilatore freeware (LCC.... sarebbe l'ideale)
La procedura deve funzionare in modalità solo testo, sotto dos puro ed anche in una finestra dos di window.
Grazie per il tuo interessamento!!
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35

Postdi zello » 28/11/06 23:51

sotto dos puro

Dimenticati di LCC, non compila a 16 bit.
avrei bisogno di un piccolo programmino in grado di estrarre dei dati da un file di testo, salvandoli in un nuovo file

Non capisco cosa significa esattamente. Copiare un file di testo è una riga una di programma, copiarne "una parte" non significa nulla a meno che non ci spieghi come è definita la parte da copiare.
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44

Postdi danrevella » 29/11/06 23:19

Ciao!!!
Qui di seguito il file originale: c:\mhdd\mhdd.log
29.11.2006 17:32:21 Device: Maxtor 6Y080L0
29.11.2006 17:32:21 F/W: YAR41BW0
29.11.2006 17:32:21 SN: Y2P4FC8E
29.11.2006 17:32:21 -------------------------------
29.11.2006 17:32:21 Lap : 1
29.11.2006 17:32:21 LBA scan: 120000000 to 160086527
29.11.2006 17:32:40 þ LBA Error: 121474860
29.11.2006 17:32:49 þ LBA Error: 122134035
29.11.2006 17:33:37 þ LBA Error: 125914665
29.11.2006 17:33:38 þ LBA Error: 125916450
29.11.2006 17:33:39 þ LBA Error: 125917215
29.11.2006 17:34:19 þ LBA Error: 129058560
29.11.2006 17:34:44 þ LBA Error: 130965450
29.11.2006 17:37:06 þ LBA Error: 141569370
29.11.2006 17:37:07 þ LBA Error: 141577530
29.11.2006 17:38:20 þ LBA Error: 146755560
29.11.2006 17:38:24 þ LBA Error: 146932020
29.11.2006 17:38:26 þ LBA Error: 146973075
29.11.2006 17:38:28 þ LBA Error: 147013620
29.11.2006 17:38:31 þ LBA Error: 147154125
29.11.2006 17:39:26 þ LBA warning: 150698940
29.11.2006 17:39:26 þ LBA Warning: 150699195
29.11.2006 17:39:27 þ LBA Warning: 150701235
29.11.2006 17:39:27 þ LBA Warning: 150703530
29.11.2006 17:40:18 þ LBA Warning: 153900720
29.11.2006 17:42:01 þ LBA Warning: 160055400
29.11.2006 17:42:03 Time spent: 00:09:40
29.11.2006 17:42:03 Blocks < 3ms = 63935
e qui quello che vorrei ricavarci: c:\mhdd\mhdd.bat
ERASE 150699195 150699195
ERASE 150701235 150701235
ERASE 150703530 150703530
ERASE 153900720 153900720
ERASE 160055400 160055400
in pratica devo estrarre (2 volte) i numeri dei settori difettosi(warnings), aggiungere la parola ERASE ed inoltre il programma mi deve chiedere il percorso del file di origine e di quello di destinazione, nell'esempio: file input?: c:\mhdd\mhdd.log file destinazione:? c:\mhdd\mhdd.bat
Come compilatore ho visto che potrebbe andare bene il Turbo C Borland che è freeware e lavora in dos.
Grazie per l'ascolto, io sono a disposizione per ogni successivo chiarimento.
Con la mia procedura manuale, ho già ricuperato hd che sembravano persi, mi piacerebbe poter automatizzare la procedura, ma sono ormai troppi anni che non programmo piu'... :-(
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35

Postdi tekanet » 30/11/06 13:11

Forse si può addirittura fare un BAT..
tekanet
Utente Senior
 
Post: 173
Iscritto il: 03/09/02 10:22
Località: Milano sud-ovest

Postdi danrevella » 30/11/06 22:30

Ciao!!
Non credo che il tutto si possa fare con un file bat....
Io avrei trovato un sorgente che potrebbe fare al caso mio, per favore mi aiutate a fare le necessarie modifiche?
Consideriamo quanto segue: nell'esempio il mio file c:\mhdd\mhdd.log(vedansi i miei precednti post) potrebbe essere input.txt, mentre il mio file di destinazione c:\mhdd\mhdd.bat potrebbe essere output.txt
Ecco l'esempio (che io ho compilato col Turbo C borland freeware per dos):
#include <stdio.h>
#include <stdlib.h>

#define kFileDaLeggere "input.txt"
#define kFileDaScrivere "output.txt"
#define kLunghezzaMaxStringa 100

#define kErroreIO -1
#define kErroreMemoria -2
#define kNessunErrore 0

double numero1,numero2,numero3;
char *stringa;

int main (void);
int LeggiDaFile(void);
int ScriviSuFile(void);

int main (void)
{
int errore;

errore=LeggiDaFile();
if(errore)
return errore;
errore=ScriviSuFile();
if(errore)
return errore;

return kNessunErrore;
}

int LeggiDaFile(void)
{
FILE *ingresso;

printf("Lettura dal file %s\n",kFileDaLeggere);
ingresso=fopen(kFileDaLeggere,"r");
if(ingresso==NULL)
return kErroreIO;
stringa=calloc(kLunghezzaMaxStringa,sizeof(char));
if(stringa==NULL)
return kErroreMemoria;
fscanf(ingresso,"%lg %lg %lg %s",&numero1,&numero2,&numero3,stringa);
printf("Numero 1: %g\nNumero 2: %g\nNumero 3: %g\nStringa: %s\n",numero1,numero2,numero3,stringa);
printf("\n");
fclose(ingresso);

return kNessunErrore;
}

int ScriviSuFile(void)
{
FILE *uscita;

printf("Scrittura sul file %s\n",kFileDaScrivere);
uscita=fopen(kFileDaScrivere,"w");
if(uscita==NULL)
return kErroreIO;
fprintf(uscita,"%g %g %g %s\n",numero1,numero2,numero3,stringa);
printf("Ora puoi aprire il file %s e verificare che contenga una copia di %s\n",kFileDaScrivere,kFileDaLeggere);
printf("\n");
return kNessunErrore;
}

Purtroppo non ci capisco un gran che, mi date una mano?
Grazie, Ciao!!!
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35

Recupero Dati

Postdi infinito1971 » 01/12/06 09:57

Ciao danrevella,
se ho capito bene, vuoi realizzare un programma come questo.
Penso che potrebbe essere un'ottima scelta rispetto a cui paragonarsi.
La tua idea di un software del genere open source è molto interessante e se si riuscisse a portare avanti tale progetto penso che non si farebbe fatica a trovare anche nuovi collaboratori... :)
Insomma, penso che hai avuto una bella idea e mi propongo se possibile, nel pochissimo tempo libero che ho a disposizione, di collaborare.

Un saluto,
infinito1971
Questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
Avatar utente
infinito1971
Utente Senior
 
Post: 532
Iscritto il: 01/08/02 21:22
Località: Napoli

Postdi danrevella » 01/12/06 11:10

Ciao!!
No!! Il mio programma non farebbe assolutamente questo, piuttosto si occupa della revitalizzazione di un hard disk quando invecchiando inizia a dare segni di cedimento, rigenerando al basso livello la formattazione di quei settori che iniziano ad essere a rischio, e se l'operazione non riesce, inibisce l'uso di tali settori, in modo che "l'infezione di settori difettosi" non si propaghi.
In realtà io starei solo scrivendo un wrapper che richiama alcune utility freeware (alcune di esse hanno l'interfaccia in russo.....) fornendo i giusti parametri ed automatizzando il processo.
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35

Postdi tekanet » 01/12/06 14:34

Alla fine il lavoro è semplice (quello del programma che chiedi), purtroppo i linguaggi che uso io sono solo Win :-/
Rimango dell'idea che buona parte potrebbe essere fatta semplicemente con comandi batch, per le questioni più ostiche si potrebbe utilizzare un'utility stile SED http://users.cybercity.dk/~bse26236/bat ... .HTM#11.80 che ad un'occhiata rapida sembra supportare il processo di regular expressions..

Se preferisci seguire la strada del compilato, continuo a seguire questo thread come spettatore, se vuoi invece provare questa che propongo, vedo di darci un'occhiata più approfondita!

Ciao! tK
tekanet
Utente Senior
 
Post: 173
Iscritto il: 03/09/02 10:22
Località: Milano sud-ovest

Postdi danrevella » 01/12/06 15:39

Grazie per l'idea, ma preferirei seguire l'idea del sorgente C: anche perchè una volta che avrò a disposizione una struttura funzionante potrò agevolmente intervenire qualora le utilty si aggiornino e producano output differenti.
In ogni caso, il sorgente che ho inviato compila benissimo anche sotto Visualstudio: è un programma che può funzionare in modalità console.
Se sotto win programmi anche in modalità console, puoi comunque aiutarmi.....
Saluti a tutti.
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35

Postdi tekanet » 01/12/06 15:43

Console solo in C#/Vb.Net, con cui sarebbe una passeggiata.. ma effettivamente avere il framework montato per un'utility del genere è una follia :D!

Buona fortuna comunque :D!

tK
tekanet
Utente Senior
 
Post: 173
Iscritto il: 03/09/02 10:22
Località: Milano sud-ovest

Postdi infinito1971 » 04/12/06 10:12

Ciao danrevella,
in merito a quanto hai scritto:
In realtà io starei solo scrivendo un wrapper che richiama alcune utility freeware (alcune di esse hanno l'interfaccia in russo.....) fornendo i giusti parametri ed automatizzando il processo.

La localizzazione dei programmi potrebbe essere fatta anche con un prodotto tipo ResourceHacker.
Comunque, in ogni caso, perchè non fornisci la lista dei programmi che vuoi aggregare? Credo che possa servire anche ad altri utenti... ;)

Un saluto,
infinito1971
Questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!
Avatar utente
infinito1971
Utente Senior
 
Post: 532
Iscritto il: 01/08/02 21:22
Località: Napoli

Postdi danrevella » 04/12/06 10:24

si possono postare i link diretti per il download sul forum? se si lo faccio subito!!!
datemi una conferma, perchè una volta per una stupidaggine del genere sono stato bannato da un forum!!
I programmi che conterei di utilizzare sono i seguenti:
Victoria 3.52c dos version in lingua russa
Mhdd 4.6 dos version in inglese
Hdat2 (sono ancora incerto su quale versione usare) dos version inglese
In ogni caso:
ognuno di questi programmi genera un file di output che io devo interpretare, generando un secondo file che devo utilizzare come input per la successiva utility, per questo ho richiesto il vostro aiuto.
Una volta che avrò il programma C funzionante in grado di eseguire l'estrazione dati che ho descritto nei post precedenti, partendo da lì non mi sarà difficile completare il mio lavoro.
Grazie a chi mi darà una mano col codice C.
Inoltre quando sarà pronta mi darete anche una mano a diffonderla? Io non ho un sito web e tantomeno le capacità di gestirmene uno: mi basta che l'utility venga messa a disposizione.
Saluti a tutti!!!
p.s. per onestà vi comunico di avere postato lo stesso problema anche in un altro forum.
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35

Postdi pjfry » 04/12/06 10:40

danrevella ha scritto:si possono postare i link diretti per il download sul forum? se si lo faccio subito!!!
datemi una conferma, perchè una volta per una stupidaggine del genere sono stato bannato da un forum!!

se sono legali non c'è problema :D
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi danrevella » 04/12/06 14:21

certamente: sono programmi freeware:
victoria 4.1 per windows:
http://hdd-911.com/components/com_docma ... VlLnJhcg==
victoria 3.52c dos(versione russa, le versioni inglesi hanno dei bachi):
http://hdd-911.com/index.php?option=com ... 0&limit=15
mhdd 4.6 dos inglese:
http://hddguru.com/content/en/software/2005.10.02-MHDD/
Mi raccomando: attenzione ad usare questi programmi: se non sapete ESATTAMENTE cio' che fate vi ritroverete con delle bombe che vi esplodono in mano...........
Ciao a tutti!!
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35

Postdi danrevella » 09/12/06 21:19

l'utility è quasi pronta, avrei bisogno di beta tester, ma in questo caso devo uscire dall'argomento programmazione e passare in un'altra sezione?
scusate se sono stato OT
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35

Postdi danrevella » 15/12/06 22:54

l'utility... il suo nome è "makebad" è pronta per volenterosi beta tester.
Se i risultati dei beta tester saranno soddisfacenti, allora cercherò di perfezionare il tutto, anche con un mini-manuale, ma avro' bisogno di aiuto per la traduzione inglese....
Eccola:
http://rapidshare.com/files/7647610/mak ... 6.zip.html
Un ringraziamento particolare ad Enzom83: :)
senza il tuo aiuto sarebbe stato impossibile!!!!
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35

Postdi danrevella » 16/12/06 16:01

Makebad da adesso ha il suo posto ufficiale qui:
http://files.hddguru.com//index.php?&di ... ft/Makebad
I nuovi aggiornamenti verrano qui postati.
danrevella
Utente Junior
 
Post: 27
Iscritto il: 27/10/03 18:35


Torna a Programmazione


Topic correlati a "programmazione di utility per hd danneggiati":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti