> Tous les forums > Forum Autres langages
 basic space$(x) ou string$... question crucialeSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
senvedgi
  Posté le 14/11/2008 @ 11:05 
Aller en bas de la page 
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

Publicité
panoramic
 Posté le 15/11/2008 à 13:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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

senvedgi
 Posté le 15/11/2008 à 14:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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.

panoramic
 Posté le 15/11/2008 à 19:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
senvedgi
 Posté le 15/11/2008 à 21:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
14,35 €Clé USB Sandisk Ultra 64 Go à double connectique USB 3.1 Type A et C à 14,35 €
Valable jusqu'au 20 Janvier

Amazon fait une promotion sur la clé USB Sandisk Ultra 64 Go à double connectique USB 3.1 Type A et C qui passe à 14,35 € alors qu'on la trouve ailleurs à plus de 25 €. Cette clé USB  dispose d'un connecteur réversible USB Type C et d'un connecteur classique de type A. Grâce à elle, transférez en toute simplicité et rapidement (jusqu'à 150 Mo/s) vos fichiers entre vos smartphones, tablettes et ordinateurs. 


> Voir l'offre
51,20 €Ventirad Be quiet! Dark Rock Slim à 51,20 € livré
Valable jusqu'au 20 Janvier

Amazon Allemagne propose actuellement le ventirad Be quiet! Dark Rock Slim à 45,28 €. Comptez 5,92 € pour la livraison en France soit un total de 51,20 € livré alors qu'on le trouve ailleurs à partir de 65 €. Une bonne affaire pour un système de refroidissement de processeur (Max 180W TDP) efficace et très silencieux.  Compatibilité socket INTEL: LGA 775 / 1150 / 1151 / 1155 / 1156 / 1366 / 2011 / 1200 et AMD: AM2 / AM2+ / AM3 /AM3+ / AM4 / FM1 / FM2 / 754 / 939 / 940. 


> Voir l'offre
49,99 €Montre connectée Xiaomi MI Watch Lite à 49,99 €
Valable jusqu'au 21 Janvier

Amazon fait une une belle promotion sur la toute nouvelle montre connectée Xiaomi MI Watch Lite qui passe à à 49,99 € au lieu de 69 €. La livraison est gratuite. 

Elle dispose d'écran couleur de 1,4 pouce affichant une définition de 320 x 320 pixels et ne pèse que 35 g. Cinq cadrans sont proposés par défaut, pour varier le style en fonction de votre envie. Du côté des fonctionnalités, vous trouverez le suivi du sommeil, l'analyse de la fréquence cardiaque, des exercices de respiration et un GPS précis capable d'indiquer l’altitude et la pression atmosphérique de votre environnement. 

Elle fait également office de coach sportif en traquant le nombre de pas, la distance parcourue ou encore les calories brûlées et reconnait jusqu'à 11 activités sportives : la course en extérieur, le tapis roulant, le cyclisme extérieur et intérieur, le trekking, la natation, le yoga, etc. D'autres informations sont disponibles sur la Mi Watch Lite, comme l’affichage des notifications avec les emojis, la météo ou encore l'alarme de votre réveil. Il est également possible de prendre des appels entrants, contrôler sa musique et rechercher son téléphone.

Côté autonomie, comptez 9 jours en utilisation standard et 10 heures en mode sport avec le GPS activé en continu. 


> Voir l'offre

Sujets relatifs
mise à jour visual basic 6 de sp3 à sp6
Visual Basic & Base de données
Question
C++ string () string( )
Les tableaux de string en c++
Comment Récupérer un Tag sous Visual Basic 2010
Question
Question
Question
[C]Recuperer données dans un string
Plus de sujets relatifs à basic space$(x) ou string$... question cruciale
 > Tous les forums > Forum Autres langages