|
 Posté le 14/11/2008 @ 11:05 |
Petit astucien
| bonjour à tous, S'il existe des connaisseurs de basic(oui des grand'pères !) il me semble qu'écrire space$(15) n'est pas la même chose que string$(15," ")? Lors d'une sauvegarde sur disque le caractère chr$(32) ou " " de string$ remplace ce qui était écrit sur le disque par le caractère chr$(32) alors que dans space$ on saute des espaces , ici 15 ,sans modifier le disque.Est-ce que je me trompe? Pourquoi se poser la question?Parce que avec string$ le disque est propre,on sait ce qu'il contient,alors qu'avec string$ il reste des fragments de chaînes avec tous les inconvénients potentiels. Ai-je bien posé la question et bien répondu? A vous lire... Cordialités à tous.
sen
|
|
|
|
|
|
Posté le 15/11/2008 à 13:21 |
Petit astucien
| Eh bien pour moi, SPACE$(15) et STRING$(15," ") sont la même chose, c'est à dire la création d'un string constitué de 15 espaces, et ils devraient être codés sur disque de la même façon.
Mon language Basic favori : www.panoramic-language.com |
|
Posté le 15/11/2008 à 14:08 |
Petit astucien
| bonjour! Donc space$ n'est qu'une simplification ou ré-écriture de string$.Quand on crée un s/s prgramme,une fonction,un sub,etc.. on se rend vite compte que des versions plus simples existent par exemple en mettant à zéro des paramètres. C'est ce que tu suggère entre space$ par rapport à string$. En l'abscence de preuves physiques pour moi " " est un code ascii 32(?) et l'écriture d'un blanc sur le disque et un espace un simple saut à un autre emplacement en laissant sans changement l'emplacement.Désolé d'objecter mais je veux des preuves...Autrefois mon bon monsieur il existait des dump(???) qui permettaient de lire les caractères inscrits sur un disque.Je n'ai jamais retrouvé ces programmes,c'est pour çà que je me pose la question de départ:un " " et un espace,un saut sont-ils la même chose? J'avais vu ton site avec panoramic car je cherche un langage pour ré-écrire mon travail actuel sous Turbo-Basic de Borland.....on ne rit pas!Les interfaces pour les inputs et sorties de fichiers oui mais pour le reste me seront très peu ou pas utiles mais je note. Cordialement à toi et à tous.
|
|
Posté le 15/11/2008 à 19:20 |
Petit astucien
| Pour information, voici le code d'un "dumper" de fichier qu'un utilisateur (JL35) du langage Panoramic a codé:
REM * DUMP.BAS dump hexadécimal de fichier * DIM f$, a$, b$, c$, ll%, nbl%, ad, i%, j%, x$, lof DIM d, h$, lh% LABEL ConvHex, nxf
CAPTION 0, "Dump fichier" FULL_SPACE 0 WIDTH 0, 530 MEMO 3 FULL_SPACE 3
REM ***** Choix du fichier OPEN_DIALOG 1 f$ = FILE_NAME$(1): REM f$= nom absolu du fichier choisi IF LEN(f$) < 2 THEN END: REM clic bouton Annuler
FILEBIN_OPEN_READ 2, f$: REM ouverture binaire du fichier lof = FILEBIN_SIZE(2): REM taille du fichier CAPTION 0, f$
ll% = 16: REM nombre d'octets affichés par ligne nbl% = 67: REM nombre de lignes à éditer
PRINT_TARGET_IS 3: FONT_NAME 3, "Courier New" ad = 0 FOR j% = 1 TO nbl% IF FILEBIN_POS(2) >= lof THEN GOTO nxf d = ad: lh% = 5: GOSUB ConvHex a$ = h$ + ": " b$ = " ": c$ = "" FOR i% = 1 TO ll% IF FILEBIN_POS(2) < lof FILEBIN_READ 2, d x$ = ".": IF d >= 32 THEN x$ = CHR$(d) b$ = b$ + x$ lh% = 2: GOSUB ConvHex c$ = c$ + h$ + " " END_IF NEXT i% IF LEN(c$) < ll%*3 THEN c$ = c$ + STRING$(3*ll% - LEN(c$), " ") PRINT a$ + c$ + b$ ad = ad + ll% NEXT j% nxf: FILEBIN_CLOSE 2 END
ConvHex: REM conversion décimal/hexa de d, résultat h$ sur lh% caractères h$="" REPEAT h$ = MID$("0123456789ABCDEF", 1+16*FRAC(d/16), 1) + h$ d = INT(d/16) UNTIL d <= 0 IF LEN(h$) < lh% THEN h$ = STRING$(lh% - LEN(h$), "0") + h$ RETURN Modifié par panoramic le 15/11/2008 19:21 |
|
Posté le 15/11/2008 à 21:42 |
Petit astucien
| bonsoir! Evidemment je pourrais pomper ce dumper et l'essayer sur mon turbo basic(TB),mais comme il y a des instructions comme target inconnues de TB celà va me mener à rien. Je n'ose pas te demander d'écrire un programme riki avec space$ ET string$ et dumper ton disque.Tu me donneras le résultat??!!.. Encore et toujours cordialement.
Au fait:TB est compilé,j'ai peur de ne rien pouvoir voir...
Modifié par senvedgi le 15/11/2008 22:03 |
|