Transfert de «gros» fichier hors de la machine MS-DOS 5.0 (sans retirer le disque dur)

55

Dans le cadre de la tenue de dossiers juridiques, les avocats en droit des affaires de mon père ont demandé une copie de la base de données des clients à partir d'un ordinateur de travail. Le problème principal est que cet ordinateur de travail est un objet AOpen ... d'environ 1988, exécutant ce qui semble être une version modifiée de DOS 5.0.

Je suis très faible avec MS-DOS et le matériel plus ancien en général, mais après avoir flâné, j'ai finalement trouvé le dossier dont l'avocat avait besoin. Le problème vient du fait que la "base de données" du client (lire: fichier texte délimité par des espaces) a une taille d'environ 3 Mo. C'est trop gros pour une disquette et les données sont dans un seul fichier, ce qui, à ma connaissance très limitée du DOS, m'empêcherait de le partager avec les programmes intégrés de l'ordinateur.

En vérifiant l'arrière de l'ordinateur, j'ai noté un port série intégré, un port parallèle dans un connecteur d'extension et, de manière assez inexplicable, une carte réseau avec une prise trop grosse pour être RJ-11. Je n'ai pas vérifié s'il s'agissait en fait d'un RJ-45, car je n'avais pas de câble Ethernet à portée de main à l'époque. Cependant, les deux fichiers de programme que j'aurais utilisés (selon mes recherches) pour utiliser le numéro de série ne sont nulle part sur l'ordinateur. De plus, je n'ai pas la moindre idée de ce que je ferais pour tirer parti de la carte réseau.

En plus de compliquer les choses, tirer le disque dur doit être relégué à un dernier recours, car l'ordinateur (qui est plus vieux que moi) est utilisé pour les opérations commerciales quotidiennes et devrait être mis hors ligne pendant environ 1 jour en raison de la distance entre l'ordinateur et moi, ce que le "client" ne veut pas particulièrement.

Donc le noeud de ma question est, avec ma compétence presque inexistante sous DOS (j'ai accidentellement corrompu une des "bases de données", et j'aurais été mal en point si je n'avais pas fait de sauvegarde au préalable), existe-t-il un moyen simple Je peux utiliser les ressources mentionnées ci-dessus (ou autre chose que je ne connais pas sous DOS) pour obtenir ce fichier de 3 mégawatts hors de l'ordinateur sans retirer le disque dur?

Tarkenfire
la source
13
La solution la plus simple serait de simplement récupérer la dernière sauvegarde complète. Ne me dites pas que ce fichier essentiel à la mission n'est pas sauvegardé et qu'il réside sur une machine appartenant à une maison de retraite.
emory
14
+1 pour utiliser doscorrectement une balise!
un CVn
13
tbh cela devrait être un appel de réveil. S'ils ne peuvent pas épargner l'ordinateur pendant une courte période parce qu'il est utilisé quotidiennement, que vont-ils faire quand l'ordinateur perd et perd toutes leurs données? Plus ils le laissent longtemps, plus cela risque de se produire. Profitez de l'occasion pour les pousser à faire la mise à niveau et à faire des sauvegardes régulières (qui peuvent ensuite être facilement copiées et envoyées à l'avocat)
JamesRyan
3
Je me sens mal pour le pauvre gars qui utilise une
dosbox des années
2
"L'ordinateur (qui est plus vieux que moi) est utilisé pour les opérations commerciales quotidiennes": cette phrase m'a fait frissonner.
Ce Guy brésilien

Réponses:

53

Essayez d’utiliser PKZip. C'est un vieil utilitaire DOS qui fournissait une des premières capacités de fichier zip. Vous devriez pouvoir le télécharger sur http://wiki.oldos.org/Downloads/MSDOS . Si la base de données est un fichier texte, alors PKZip doit vous permettre de compresser suffisamment pour pouvoir accéder à une disquette. Sinon, autorisez le fractionnement de plusieurs disques. À ce stade, votre principal problème est de passer de la disquette à un ordinateur plus moderne. Je ne me souviens pas de la syntaxe de PKZip, mais je me souviens du fait qu’il a une très bonne aide intégrée pour vous montrer exactement comment compresser et décompresser des fichiers. Je recommande la version 2.04g des téléchargements car elle était universellement considérée comme la meilleure version depuis de nombreuses années.

Tom A
la source
12
Même si vous ne pouvez pas le compresser suffisamment pour tenir sur une seule disquette, vous devriez pouvoir créer un ensemble de volumes compressés de fichiers zip.
daxlerod
2
si c'est du texte pur, il devrait compresser assez bien
Keltari
24
@Tarkenfire: Tout sur DOS n'est pas du texte brut! Comment les programmes existeraient-ils, sans parler de pratiquement tous les formats de fichiers binaires?
Karan
1
Obtenir les données de la disquette ne devrait pas être trop difficile; Les lecteurs de disquettes USB sont assez bon marché.
Aaron Miller
5
Juste pour mettre à jour, pkzip a fonctionné comme un charme; il a compressé un fichier d'environ 3 000 Ko à environ 300 Ko, probablement parce que c'était un fichier texte délimité par un espace avec 2700 Ko d'espace ...
Tarkenfire
17

QBasic est-il installé sur l'ordinateur ? Si tel est le cas, vous pourrez peut-être y écrire un simple séparateur de fichiers, comme ceci:

OPEN "database.dat" FOR BINARY AS #1

LET disk% = 1
LET todo& = LOF(1)

DO UNTIL todo& <= 0
    PRINT "Insert disk"; disk%; "into drive A: and press enter.";
    LINE INPUT ""; foo$

    LET file$ = "A:\chunk" + LTRIM$(RTRIM$(STR$(disk%))) + ".dat"
    OPEN file$ FOR BINARY AS #2

    LET done& = 0
    DO UNTIL done& >= 1300000 OR todo& <= 0
        LET buf$ = SPACE$(4096)
        IF todo& < LEN(buf$) THEN LET buf$ = SPACE$(todo&)
        GET #1, , buf$
        PUT #2, , buf$
        LET done& = done& + LEN(buf$)
        LET todo& = todo& - LEN(buf$)
    LOOP

    CLOSE #2
    LET disk% = disk% + 1
    BEEP
LOOP
CLOSE #1

Cela divisera votre base de données en morceaux de 1,3 Mo, ce qui devrait tenir facilement sur une disquette de 1,44 Mo, même en tenant compte des frais généraux liés à la FAT.

Edit: Voici une version mise à jour utilisant des E / S binaires, qui s'exécute beaucoup plus rapidement, qui n'a pas de problèmes avec les caractères Ctrl-Z et qui gère correctement les fichiers d'entrée dont la taille n'est pas un multiple de la taille de la mémoire tampon. Je l'ai testé sous DOSBox et il a correctement fractionné un fichier d'octets aléatoires de 3 Mo en morceaux.

Ilmari Karonen
la source
IIRC, les morceaux peuvent être réassemblés en utilisant le drapeau binaire et la copie, par exemple copy /b foo_1.chunk + /b foo_2.chunk {...}. Je ne peux pas me rappeler si la version de la copie Dos 5 a ou non le drapeau binaire ...
horatio le
1
aussi, si vous open for binaryet lisez / écrivez en utilisant getet put, vous n'avez pas de "problèmes de caractère magique"
horatio
@horatio: Merci pour le tuyau. Il s'avère également être beaucoup plus rapide (bien que je suppose que la différence peut être négligeable lorsque vous écrivez sur de vraies disquettes).
Ilmari Karonen
10

Comme il n’ya que 3 Mo, l’utilisation d’un PKZIP avec Spanning serait la solution la plus simple, comme d’autres l'ont déjà dit. pourtant

Si vous aviez un tel problème et que le lecteur de disquette ne fonctionnait PAS, utiliser le port série serait assez facile.

Pour utiliser un port série, vous avez besoin d’un programme de terminal DOS. Vous devez l’exécuter puis utiliser un protocole tel que ZMODEM pour transférer le fichier à 115 kbps, ce qui devrait prendre moins de 5 minutes à 115200 kbps.

Sur votre ordinateur portable ou sur un autre PC moderne, vous aurez besoin d'un adaptateur USB vers série, d'un câble null modem et d'un programme de terminal prenant en charge le même protocole de transfert de fichiers. Ces câbles devraient vous coûter environ 5 $ chacun dans les magasins d'informatique les plus décents.

Le meilleur programme terminal MS-DOS que j'ai jamais utilisé s'appelle Telix version 3.12.

Warren P
la source
1
Telix était un très bon programme, et je me souviens également de l’utilisation de Terminate. Je me demande si vous avez déjà utilisé ça? Mes BBS et mon modem USR préférés me manquent parfois. N'oubliez pas d'être obsédé par la création artistique ASCII il était une fois!
Karan
8

PKZIP prend en charge l’étalement de plusieurs disquettes, et Lenovo dispose d’une application compatible avec DOS appelée CHOPPER qui remplit également cette fonction.

http://support.lenovo.com/en_US/research/hints-or-tips/detail.page?LegacyDocID=DSHY-44QSCB

Le commutateur pkzip pour l’étalement du disque (à partir de la documentation):

-&[f|l|u Span disks [Format|format Low density|Unconditional format| ul|w|v] Unconditional Low density|Wipe disk|enable dos Verify| [s[drive]] Back up entire disk w/ subdirs (-rp) [drive to back up]]

JohnP
la source
3

L'avocat a-t-il explicitement spécifié que la base de données devrait être fournie sous forme électronique?
Sinon, et si ce système critique a une imprimante fonctionnelle (matrice à points) connectée, vous pouvez imprimer le fichier texte à l'aide de la commande d'impression DOS .
Par exemple:

print c: \ fichier.txt / c / d: lpt1

En supposant une vitesse d'impression de 100 l / min (~ 2,5 ppm) et 750 pages de texte (quantité estimée dans un fichier texte de 3 Mo selon ce calculateur ), vous devriez être en mesure de produire une copie complète en environ 5 heures.

gm2
la source
2

Peut-être pourriez-vous fractionner le fichier texte manuellement à l'aide des outils déjà présents dans DOS et les recombiner dans l'ordinateur cible? Parce que tout est en ASCII, cela devrait être beaucoup plus facile que de tenter de scinder un fichier binaire.

Nicholas Hill
la source
3
J'ai essayé les deux éditeurs que je pouvais trouver sur le système, mais ils m'ont tous les deux lancé une erreur "manque de mémoire", je suppose, car ils ont tenté de charger le fichier de 3 Mo en mémoire en même temps.
Tarkenfire
Je ne voudrais pas utiliser un éditeur, mais je pense que certains arguments de XCOPY, MORE ou peut-être même que TYPE pourrait vous permettre de scinder brutalement le fichier. (Bien sûr, PKZIP est beaucoup plus facile et presque garanti, mais cela pourrait être un essai amusant)
Javier
2

Avant les jours vantés de puces USB omniprésentes et d'une carte réseau dans chaque ordinateur, je me souviens avoir connecté avec amour deux ordinateurs avec des câbles série et parallèle pour des transferts de données à grande échelle.

Je devais google la méthode la plus pratique dans l'âge actuel, mais cela ressemble à ce que je me souviens.

File Maven est un utilitaire de transfert de fichier qui vous permet d'effectuer des transferts via un câble série ou parallèle. Vous n'avez probablement plus rien avec un port série autour, donc un adaptateur série-usb vous permettra de vous connecter à la technologie moderne.

Ce câble peut nécessiter un adaptateur de changement de sexe, j'oublie la partie d'un PC.

Je veux me lever et applaudir le fabricant qui était responsable du disque dur. Le disque dur de 25 ans fonctionne toujours. Pouvez-vous imaginer que les disques SATA actuels fonctionnent encore en 2038?

Árni St. Sigurðsson
la source
1

Vous pouvez toujours trouver un lecteur Zip / Jaz à 25 broches sur Craigslist ou eBay. Cependant, il existe de meilleures méthodes que cela. :)

Keltari
la source
1

Pourquoi ne pas essayer de trouver une ancienne version de Laplink, le client étant une nouvelle version s'exécutant sur le PC sur lequel vous souhaitez utiliser ces données. Logiciel disponible ici: http://www.briggsoft.com/fmdos.htm

Cavemanharris
la source
Les PC modernes n'auraient même pas de port série, encore moins de port parallèle, mais je suppose qu'avec un adaptateur USB / série, laplink serait une bonne idée. Un moyen beaucoup plus facile de transférer le contenu d'un disque dur entier ou d'un dossier entier, que l'idée de Telix + ZMODEM, mais cette approche est-elle techniquement LÉGALE? "LapLink", la marque existe toujours, et peut-être n'aiment-ils pas que les gens téléchargent leurs contenus DOS.
Warren P