Jean-marc a écrit :Marc wrote:Merci à tous les deux,Je pense à une dernière question:
Est-il possible de creer un type (structure en C) en cours
d'execution.
Non, ni en VB ni en C d'ailleurs, et pour des raisons évidentes:
il faudrait alors que le prgramme génère à l'exécution du code
pour manipuler le nouveau type ...
Pas tout à fait d'accord, mais c'est relativement lourd à mettre en
oeuvre. Nous avons réussi, je dis nous sans pédanterie, nous étions
plusieurs, il y a quelques années, à gérer en VB des fichiers Isam
Microfocus, dont la description originale était en Cobol Microsoft (Si
si, il a existé). Ce qui implique des formats de données inconnus de
VB (COMP-0, Comp-3 (très intéressant), Comp-5, Comp-X), avec
enregistrements de longueur variable, tout cela en séquentiel indexé.
Ceci, dans une première phase, avec un .ini décrivant les divers
enregistrements et types de champs, ainsi que leur taille.
Cela suppose toutefois de connaitre les différentes structures que
l'on peut rencontrer.
J'avais participé précédemment aux mêmes genres de blagues en migrant
compilateur, et gestion de fichier de Dibol sous AIX, vers SCO Unix et
MS-DOS.
Dans tous les cas, ce fut une impasse, pas tellement en terme
technique, mais en terme de coût. Mais je parle ici de migration.
Si on part de zéro, je me rappelle avoir lu, mais je ne sais plus où,
que l'important n'est pas l'algorithme, mais comment on structure ses
données
Jean-marc a écrit :
Marc wrote:
Merci à tous les deux,
Je pense à une dernière question:
Est-il possible de creer un type (structure en C) en cours
d'execution.
Non, ni en VB ni en C d'ailleurs, et pour des raisons évidentes:
il faudrait alors que le prgramme génère à l'exécution du code
pour manipuler le nouveau type ...
Pas tout à fait d'accord, mais c'est relativement lourd à mettre en
oeuvre. Nous avons réussi, je dis nous sans pédanterie, nous étions
plusieurs, il y a quelques années, à gérer en VB des fichiers Isam
Microfocus, dont la description originale était en Cobol Microsoft (Si
si, il a existé). Ce qui implique des formats de données inconnus de
VB (COMP-0, Comp-3 (très intéressant), Comp-5, Comp-X), avec
enregistrements de longueur variable, tout cela en séquentiel indexé.
Ceci, dans une première phase, avec un .ini décrivant les divers
enregistrements et types de champs, ainsi que leur taille.
Cela suppose toutefois de connaitre les différentes structures que
l'on peut rencontrer.
J'avais participé précédemment aux mêmes genres de blagues en migrant
compilateur, et gestion de fichier de Dibol sous AIX, vers SCO Unix et
MS-DOS.
Dans tous les cas, ce fut une impasse, pas tellement en terme
technique, mais en terme de coût. Mais je parle ici de migration.
Si on part de zéro, je me rappelle avoir lu, mais je ne sais plus où,
que l'important n'est pas l'algorithme, mais comment on structure ses
données
Jean-marc a écrit :Marc wrote:Merci à tous les deux,Je pense à une dernière question:
Est-il possible de creer un type (structure en C) en cours
d'execution.
Non, ni en VB ni en C d'ailleurs, et pour des raisons évidentes:
il faudrait alors que le prgramme génère à l'exécution du code
pour manipuler le nouveau type ...
Pas tout à fait d'accord, mais c'est relativement lourd à mettre en
oeuvre. Nous avons réussi, je dis nous sans pédanterie, nous étions
plusieurs, il y a quelques années, à gérer en VB des fichiers Isam
Microfocus, dont la description originale était en Cobol Microsoft (Si
si, il a existé). Ce qui implique des formats de données inconnus de
VB (COMP-0, Comp-3 (très intéressant), Comp-5, Comp-X), avec
enregistrements de longueur variable, tout cela en séquentiel indexé.
Ceci, dans une première phase, avec un .ini décrivant les divers
enregistrements et types de champs, ainsi que leur taille.
Cela suppose toutefois de connaitre les différentes structures que
l'on peut rencontrer.
J'avais participé précédemment aux mêmes genres de blagues en migrant
compilateur, et gestion de fichier de Dibol sous AIX, vers SCO Unix et
MS-DOS.
Dans tous les cas, ce fut une impasse, pas tellement en terme
technique, mais en terme de coût. Mais je parle ici de migration.
Si on part de zéro, je me rappelle avoir lu, mais je ne sais plus où,
que l'important n'est pas l'algorithme, mais comment on structure ses
données
Jean-marc a écrit :Jacques93 wrote:Drôle de pays tout de même, adresse sur 10, Code Postal sur 50 ???
Les facteurs vont avoir du boulot ;-)
Bonjour Jean-Marc,Les fabricants d'enveloppes doivent aussi faire des formats
spéciaux:
+---------------------------------------------------------------+
| |
| ..... |
| . G . |
| . G . |
| ..... |
| |
| Mr Jean Dupont |
| 12345688228526974226325684623518395513848, Rue des tamaris |
| B - BizzarrVille - Bizzarland |
| |
+---------------------------------------------------------------+
Ben oui pour les enveloppes, mais en fait non, ça c'est le code postal de
Mr DuponD !!!
<http://www.chavaipa.com/wp-content/uploads/2008/11/tintin_dupont.jpg>
--
Cordialement,
Jacques.
Jean-marc a écrit :
Jacques93 wrote:
Drôle de pays tout de même, adresse sur 10, Code Postal sur 50 ???
Les facteurs vont avoir du boulot ;-)
Bonjour Jean-Marc,
Les fabricants d'enveloppes doivent aussi faire des formats
spéciaux:
+---------------------------------------------------------------+
| |
| ..... |
| . G . |
| . G . |
| ..... |
| |
| Mr Jean Dupont |
| 12345688228526974226325684623518395513848, Rue des tamaris |
| B - BizzarrVille - Bizzarland |
| |
+---------------------------------------------------------------+
Ben oui pour les enveloppes, mais en fait non, ça c'est le code postal de
Mr DuponD !!!
<http://www.chavaipa.com/wp-content/uploads/2008/11/tintin_dupont.jpg>
--
Cordialement,
Jacques.
Jean-marc a écrit :Jacques93 wrote:Drôle de pays tout de même, adresse sur 10, Code Postal sur 50 ???
Les facteurs vont avoir du boulot ;-)
Bonjour Jean-Marc,Les fabricants d'enveloppes doivent aussi faire des formats
spéciaux:
+---------------------------------------------------------------+
| |
| ..... |
| . G . |
| . G . |
| ..... |
| |
| Mr Jean Dupont |
| 12345688228526974226325684623518395513848, Rue des tamaris |
| B - BizzarrVille - Bizzarland |
| |
+---------------------------------------------------------------+
Ben oui pour les enveloppes, mais en fait non, ça c'est le code postal de
Mr DuponD !!!
<http://www.chavaipa.com/wp-content/uploads/2008/11/tintin_dupont.jpg>
--
Cordialement,
Jacques.
He bien oui j'en suis là maintenant !
J'ai donc deux machines, une cliente, un serveur.
2 apli VB qui tourne de chaque cotés.
Une relation entre les deaux avec Winsock.
Sur le client j'ai créer des fonctions genre CreateBD, CreateTable,
CreateIndex, AddNew(fonctionne pas), etc ...
Sur le serveur je recois tous ce petit monde, aucun probleme.
Mais quand je veux faire un put(Addnew) sur le serveur il me dit que ma
taille de Rec n'est pas bonne alors que j'ai un string de la même taille que
le len (d'ouverture du fichier random).
d'ou ma question sur les types.
J'ai un fichier sur le serveur avec la config, que j'avais prévu et qui se
fabrique avec CreateTable, du style: Nom(50), Prenom(50), etc... etc ...
Là je nage comment utiliser ce fichier afin de le passer en type, pour le
put et le get, ou comment fabriquer un string ou autre chose qui
fonctionnera avec le put ou le get ?
He bien oui j'en suis là maintenant !
J'ai donc deux machines, une cliente, un serveur.
2 apli VB qui tourne de chaque cotés.
Une relation entre les deaux avec Winsock.
Sur le client j'ai créer des fonctions genre CreateBD, CreateTable,
CreateIndex, AddNew(fonctionne pas), etc ...
Sur le serveur je recois tous ce petit monde, aucun probleme.
Mais quand je veux faire un put(Addnew) sur le serveur il me dit que ma
taille de Rec n'est pas bonne alors que j'ai un string de la même taille que
le len (d'ouverture du fichier random).
d'ou ma question sur les types.
J'ai un fichier sur le serveur avec la config, que j'avais prévu et qui se
fabrique avec CreateTable, du style: Nom(50), Prenom(50), etc... etc ...
Là je nage comment utiliser ce fichier afin de le passer en type, pour le
put et le get, ou comment fabriquer un string ou autre chose qui
fonctionnera avec le put ou le get ?
He bien oui j'en suis là maintenant !
J'ai donc deux machines, une cliente, un serveur.
2 apli VB qui tourne de chaque cotés.
Une relation entre les deaux avec Winsock.
Sur le client j'ai créer des fonctions genre CreateBD, CreateTable,
CreateIndex, AddNew(fonctionne pas), etc ...
Sur le serveur je recois tous ce petit monde, aucun probleme.
Mais quand je veux faire un put(Addnew) sur le serveur il me dit que ma
taille de Rec n'est pas bonne alors que j'ai un string de la même taille que
le len (d'ouverture du fichier random).
d'ou ma question sur les types.
J'ai un fichier sur le serveur avec la config, que j'avais prévu et qui se
fabrique avec CreateTable, du style: Nom(50), Prenom(50), etc... etc ...
Là je nage comment utiliser ce fichier afin de le passer en type, pour le
put et le get, ou comment fabriquer un string ou autre chose qui
fonctionnera avec le put ou le get ?
Marc a écrit :He bien oui j'en suis là maintenant !
J'ai donc deux machines, une cliente, un serveur.
2 apli VB qui tourne de chaque cotés.
Une relation entre les deaux avec Winsock.
jusque là, OKSur le client j'ai créer des fonctions genre CreateBD, CreateTable,
CreateIndex, AddNew(fonctionne pas), etc ...
Sur le serveur je recois tous ce petit monde, aucun probleme.
Mais quand je veux faire un put(Addnew) sur le serveur il me dit que ma
taille de Rec n'est pas bonne alors que j'ai un string de la même taille
que le len (d'ouverture du fichier random).
Peux tu préciser ce que tu entends par put(Addnew). Quel code VB utilise
tu ?
d'ou ma question sur les types.
J'ai un fichier sur le serveur avec la config, que j'avais prévu et qui
se fabrique avec CreateTable, du style: Nom(50), Prenom(50), etc... etc
...
Là je nage comment utiliser ce fichier afin de le passer en type, pour le
put et le get, ou comment fabriquer un string ou autre chose qui
fonctionnera avec le put ou le get ?
Il me semble que Jean-Marc t'as proposé une solution, qui consiste à
concaténer les "String" de ta structure. Si tu as d'autres type dans ta
structure (int, long ...) tu peux les convertir en String, en prenant
garde à avoir une taille constante.
Si ta structure est complexe, nombre de champs et type de variable
nombreux, et / ou des structures imbriquées, la méthode utilisant
"CopyMemory" que j'ai indiqué dans les liens, est peut être plus
appropriée, en terme de lourdeur du code, ainsi qu'en performance.
--
Cordialement,
Jacques.
Marc a écrit :
He bien oui j'en suis là maintenant !
J'ai donc deux machines, une cliente, un serveur.
2 apli VB qui tourne de chaque cotés.
Une relation entre les deaux avec Winsock.
jusque là, OK
Sur le client j'ai créer des fonctions genre CreateBD, CreateTable,
CreateIndex, AddNew(fonctionne pas), etc ...
Sur le serveur je recois tous ce petit monde, aucun probleme.
Mais quand je veux faire un put(Addnew) sur le serveur il me dit que ma
taille de Rec n'est pas bonne alors que j'ai un string de la même taille
que le len (d'ouverture du fichier random).
Peux tu préciser ce que tu entends par put(Addnew). Quel code VB utilise
tu ?
d'ou ma question sur les types.
J'ai un fichier sur le serveur avec la config, que j'avais prévu et qui
se fabrique avec CreateTable, du style: Nom(50), Prenom(50), etc... etc
...
Là je nage comment utiliser ce fichier afin de le passer en type, pour le
put et le get, ou comment fabriquer un string ou autre chose qui
fonctionnera avec le put ou le get ?
Il me semble que Jean-Marc t'as proposé une solution, qui consiste à
concaténer les "String" de ta structure. Si tu as d'autres type dans ta
structure (int, long ...) tu peux les convertir en String, en prenant
garde à avoir une taille constante.
Si ta structure est complexe, nombre de champs et type de variable
nombreux, et / ou des structures imbriquées, la méthode utilisant
"CopyMemory" que j'ai indiqué dans les liens, est peut être plus
appropriée, en terme de lourdeur du code, ainsi qu'en performance.
--
Cordialement,
Jacques.
Marc a écrit :He bien oui j'en suis là maintenant !
J'ai donc deux machines, une cliente, un serveur.
2 apli VB qui tourne de chaque cotés.
Une relation entre les deaux avec Winsock.
jusque là, OKSur le client j'ai créer des fonctions genre CreateBD, CreateTable,
CreateIndex, AddNew(fonctionne pas), etc ...
Sur le serveur je recois tous ce petit monde, aucun probleme.
Mais quand je veux faire un put(Addnew) sur le serveur il me dit que ma
taille de Rec n'est pas bonne alors que j'ai un string de la même taille
que le len (d'ouverture du fichier random).
Peux tu préciser ce que tu entends par put(Addnew). Quel code VB utilise
tu ?
d'ou ma question sur les types.
J'ai un fichier sur le serveur avec la config, que j'avais prévu et qui
se fabrique avec CreateTable, du style: Nom(50), Prenom(50), etc... etc
...
Là je nage comment utiliser ce fichier afin de le passer en type, pour le
put et le get, ou comment fabriquer un string ou autre chose qui
fonctionnera avec le put ou le get ?
Il me semble que Jean-Marc t'as proposé une solution, qui consiste à
concaténer les "String" de ta structure. Si tu as d'autres type dans ta
structure (int, long ...) tu peux les convertir en String, en prenant
garde à avoir une taille constante.
Si ta structure est complexe, nombre de champs et type de variable
nombreux, et / ou des structures imbriquées, la méthode utilisant
"CopyMemory" que j'ai indiqué dans les liens, est peut être plus
appropriée, en terme de lourdeur du code, ainsi qu'en performance.
--
Cordialement,
Jacques.
Merci Jaques,
alors pour:
put (addnew) addnew est le nom de ma procedure.
je m'appercoit que l'on ne peut pas faire de append sans structure type a
moins que vous ayez une autre méthode et cela bloque tout mon travail:
exe:
Open "c:test.dat" For Random As #1 Len = 10
Put #1, 1, "AAAAAAAAAA"
Close #1
J'ai une erreur 59 taille incorrect
Je ne comprend pas len mon string ???????
En fait coté serveur je ne peut creer de structure fixe, elle est donnée
par le client au moment de la creation du fichier.
J'utilise le serveur comme mysql, j'envoi par l'intermediaire du client
via winsock des commandes: CreateBD, CreateTable et Create Index. Je stock
dans un fichier ini sur le serveur la structure de la table:
Exe:
NomClient(50)
PrenomClient(50)
etc ..
Après je ne peut pas reutiliser ces infos sauf en concatenant les donnees
envoyée par le client et j'essaye de l'ecrire avec un put dant le fichiet
dat avec random.
L'ouverture du fichier random se fait avec un len 98 et le string dans
le put fait 398 et j'ai toujours une erreur 59.
Je fais cela car je ne peut pas creer de structure type a partir de mon
fichier ini en cours d'execution.
Je ne suis pas sur d'être clair?
Bien cordialement
MarcMarc a écrit :He bien oui j'en suis là maintenant !
J'ai donc deux machines, une cliente, un serveur.
2 apli VB qui tourne de chaque cotés.
Une relation entre les deaux avec Winsock.
jusque là, OKSur le client j'ai créer des fonctions genre CreateBD, CreateTable,
CreateIndex, AddNew(fonctionne pas), etc ...
Sur le serveur je recois tous ce petit monde, aucun probleme.
Mais quand je veux faire un put(Addnew) sur le serveur il me dit que ma
taille de Rec n'est pas bonne alors que j'ai un string de la même taille
que le len (d'ouverture du fichier random).
Peux tu préciser ce que tu entends par put(Addnew). Quel code VB utilise
tu ?
d'ou ma question sur les types.
J'ai un fichier sur le serveur avec la config, que j'avais prévu et qui
se fabrique avec CreateTable, du style: Nom(50), Prenom(50), etc... etc
...
Là je nage comment utiliser ce fichier afin de le passer en type, pour
le put et le get, ou comment fabriquer un string ou autre chose qui
fonctionnera avec le put ou le get ?
Il me semble que Jean-Marc t'as proposé une solution, qui consiste à
concaténer les "String" de ta structure. Si tu as d'autres type dans ta
structure (int, long ...) tu peux les convertir en String, en prenant
garde à avoir une taille constante.
Si ta structure est complexe, nombre de champs et type de variable
nombreux, et / ou des structures imbriquées, la méthode utilisant
"CopyMemory" que j'ai indiqué dans les liens, est peut être plus
appropriée, en terme de lourdeur du code, ainsi qu'en performance.
--
Cordialement,
Jacques.
Merci Jaques,
alors pour:
put (addnew) addnew est le nom de ma procedure.
je m'appercoit que l'on ne peut pas faire de append sans structure type a
moins que vous ayez une autre méthode et cela bloque tout mon travail:
exe:
Open "c:test.dat" For Random As #1 Len = 10
Put #1, 1, "AAAAAAAAAA"
Close #1
J'ai une erreur 59 taille incorrect
Je ne comprend pas len mon string ???????
En fait coté serveur je ne peut creer de structure fixe, elle est donnée
par le client au moment de la creation du fichier.
J'utilise le serveur comme mysql, j'envoi par l'intermediaire du client
via winsock des commandes: CreateBD, CreateTable et Create Index. Je stock
dans un fichier ini sur le serveur la structure de la table:
Exe:
NomClient(50)
PrenomClient(50)
etc ..
Après je ne peut pas reutiliser ces infos sauf en concatenant les donnees
envoyée par le client et j'essaye de l'ecrire avec un put dant le fichiet
dat avec random.
L'ouverture du fichier random se fait avec un len 98 et le string dans
le put fait 398 et j'ai toujours une erreur 59.
Je fais cela car je ne peut pas creer de structure type a partir de mon
fichier ini en cours d'execution.
Je ne suis pas sur d'être clair?
Bien cordialement
Marc
Marc a écrit :
He bien oui j'en suis là maintenant !
J'ai donc deux machines, une cliente, un serveur.
2 apli VB qui tourne de chaque cotés.
Une relation entre les deaux avec Winsock.
jusque là, OK
Sur le client j'ai créer des fonctions genre CreateBD, CreateTable,
CreateIndex, AddNew(fonctionne pas), etc ...
Sur le serveur je recois tous ce petit monde, aucun probleme.
Mais quand je veux faire un put(Addnew) sur le serveur il me dit que ma
taille de Rec n'est pas bonne alors que j'ai un string de la même taille
que le len (d'ouverture du fichier random).
Peux tu préciser ce que tu entends par put(Addnew). Quel code VB utilise
tu ?
d'ou ma question sur les types.
J'ai un fichier sur le serveur avec la config, que j'avais prévu et qui
se fabrique avec CreateTable, du style: Nom(50), Prenom(50), etc... etc
...
Là je nage comment utiliser ce fichier afin de le passer en type, pour
le put et le get, ou comment fabriquer un string ou autre chose qui
fonctionnera avec le put ou le get ?
Il me semble que Jean-Marc t'as proposé une solution, qui consiste à
concaténer les "String" de ta structure. Si tu as d'autres type dans ta
structure (int, long ...) tu peux les convertir en String, en prenant
garde à avoir une taille constante.
Si ta structure est complexe, nombre de champs et type de variable
nombreux, et / ou des structures imbriquées, la méthode utilisant
"CopyMemory" que j'ai indiqué dans les liens, est peut être plus
appropriée, en terme de lourdeur du code, ainsi qu'en performance.
--
Cordialement,
Jacques.
Merci Jaques,
alors pour:
put (addnew) addnew est le nom de ma procedure.
je m'appercoit que l'on ne peut pas faire de append sans structure type a
moins que vous ayez une autre méthode et cela bloque tout mon travail:
exe:
Open "c:test.dat" For Random As #1 Len = 10
Put #1, 1, "AAAAAAAAAA"
Close #1
J'ai une erreur 59 taille incorrect
Je ne comprend pas len mon string ???????
En fait coté serveur je ne peut creer de structure fixe, elle est donnée
par le client au moment de la creation du fichier.
J'utilise le serveur comme mysql, j'envoi par l'intermediaire du client
via winsock des commandes: CreateBD, CreateTable et Create Index. Je stock
dans un fichier ini sur le serveur la structure de la table:
Exe:
NomClient(50)
PrenomClient(50)
etc ..
Après je ne peut pas reutiliser ces infos sauf en concatenant les donnees
envoyée par le client et j'essaye de l'ecrire avec un put dant le fichiet
dat avec random.
L'ouverture du fichier random se fait avec un len 98 et le string dans
le put fait 398 et j'ai toujours une erreur 59.
Je fais cela car je ne peut pas creer de structure type a partir de mon
fichier ini en cours d'execution.
Je ne suis pas sur d'être clair?
Bien cordialement
MarcMarc a écrit :He bien oui j'en suis là maintenant !
J'ai donc deux machines, une cliente, un serveur.
2 apli VB qui tourne de chaque cotés.
Une relation entre les deaux avec Winsock.
jusque là, OKSur le client j'ai créer des fonctions genre CreateBD, CreateTable,
CreateIndex, AddNew(fonctionne pas), etc ...
Sur le serveur je recois tous ce petit monde, aucun probleme.
Mais quand je veux faire un put(Addnew) sur le serveur il me dit que ma
taille de Rec n'est pas bonne alors que j'ai un string de la même taille
que le len (d'ouverture du fichier random).
Peux tu préciser ce que tu entends par put(Addnew). Quel code VB utilise
tu ?
d'ou ma question sur les types.
J'ai un fichier sur le serveur avec la config, que j'avais prévu et qui
se fabrique avec CreateTable, du style: Nom(50), Prenom(50), etc... etc
...
Là je nage comment utiliser ce fichier afin de le passer en type, pour
le put et le get, ou comment fabriquer un string ou autre chose qui
fonctionnera avec le put ou le get ?
Il me semble que Jean-Marc t'as proposé une solution, qui consiste à
concaténer les "String" de ta structure. Si tu as d'autres type dans ta
structure (int, long ...) tu peux les convertir en String, en prenant
garde à avoir une taille constante.
Si ta structure est complexe, nombre de champs et type de variable
nombreux, et / ou des structures imbriquées, la méthode utilisant
"CopyMemory" que j'ai indiqué dans les liens, est peut être plus
appropriée, en terme de lourdeur du code, ainsi qu'en performance.
--
Cordialement,
Jacques.
Bon j'ai trouvé une solution , mais ca coince encore:
Comme cela ca fonctionne:
Dim Test as string * 10
Test="AAAAAAAAAA"
Open "c:test.dat" For Random As #1 Len = 10
Put #1, 1, Test
Close #1
Coté Serveur il faudrait pouvoir mettre dim Test as string *
TailleRec et la il veut une constante apres *.
(TailleRec etant la taille de la concatenation de tous les champs.)
La taille n'est pas dans le programme qui serra complilé, mais dans le
fichier ini.
Sinon plus d'interet d'avoir un serveur ... MDR
Décidement je vais finir par m'arracher les cheveux .....
Bon j'ai trouvé une solution , mais ca coince encore:
Comme cela ca fonctionne:
Dim Test as string * 10
Test="AAAAAAAAAA"
Open "c:test.dat" For Random As #1 Len = 10
Put #1, 1, Test
Close #1
Coté Serveur il faudrait pouvoir mettre dim Test as string *
TailleRec et la il veut une constante apres *.
(TailleRec etant la taille de la concatenation de tous les champs.)
La taille n'est pas dans le programme qui serra complilé, mais dans le
fichier ini.
Sinon plus d'interet d'avoir un serveur ... MDR
Décidement je vais finir par m'arracher les cheveux .....
Bon j'ai trouvé une solution , mais ca coince encore:
Comme cela ca fonctionne:
Dim Test as string * 10
Test="AAAAAAAAAA"
Open "c:test.dat" For Random As #1 Len = 10
Put #1, 1, Test
Close #1
Coté Serveur il faudrait pouvoir mettre dim Test as string *
TailleRec et la il veut une constante apres *.
(TailleRec etant la taille de la concatenation de tous les champs.)
La taille n'est pas dans le programme qui serra complilé, mais dans le
fichier ini.
Sinon plus d'interet d'avoir un serveur ... MDR
Décidement je vais finir par m'arracher les cheveux .....
Marc wrote:Bon j'ai trouvé une solution , mais ca coince encore:
Comme cela ca fonctionne:
Dim Test as string * 10
Test="AAAAAAAAAA"
Open "c:test.dat" For Random As #1 Len = 10
Put #1, 1, Test
Close #1
Coté Serveur il faudrait pouvoir mettre dim Test as string *
TailleRec et la il veut une constante apres *.
(TailleRec etant la taille de la concatenation de tous les champs.)
La taille n'est pas dans le programme qui serra complilé, mais dans le
fichier ini.
Sinon plus d'interet d'avoir un serveur ... MDR
Décidement je vais finir par m'arracher les cheveux .....
Hello,
Rien de sorcier cependant. Mais il faut lire la doc de Put dans l'aide de
VB
qui explique clairement comment faire.
Je cite :
"If the variable being written is a Variant of VarType 8 (String),
"Put writes 2 bytes identifying the VarType, 2 bytes indicating
the length of the string, and then writes the string data. The
record length specified by the Len clause in the Open statement
must be at least 4 bytes greater than the actual length
of the string."
Ici, c'est tout simple :
Dim f As Integer
Dim TailleRecord As Long
Dim s As Variant
Dim buffer As String
' taille reçue du serveur
TailleRecord = 20
s = Space$(TailleRecord)
' données reçues du serveur, peut même être moins
' que 20
buffer = "1234657890"
' on met dans s
Mid$(s, 1, TailleRecord) = buffer
' et on écrit - Noter le "+4"
f = FreeFile
Open "c:tutu.txt" For Random As #f Len = TailleRecord + 4
Put #f, 1, s
Close #f
' prouvons que cela marche :
buffer = ""
f = FreeFile
Open "c:tutu.txt" For Random As #f Len = TailleRecord + 4
Get #f, 1, s
Close #f
buffer = CStr(s)
Debug.Print "->" & buffer & "<- " & len(buffer)
L'astuce, c'est le "+ 4" : 2 bytes pour le type de variant et 2 bytes
pour la longueur de la chaine, que chaque Put va écrire devant les
données, pour chaque record.
On notera que c'est un des rares cas ou l'utilisation d'un
variant est judicieuse.
Ton problème est donc réglé :-)
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Marc wrote:
Bon j'ai trouvé une solution , mais ca coince encore:
Comme cela ca fonctionne:
Dim Test as string * 10
Test="AAAAAAAAAA"
Open "c:test.dat" For Random As #1 Len = 10
Put #1, 1, Test
Close #1
Coté Serveur il faudrait pouvoir mettre dim Test as string *
TailleRec et la il veut une constante apres *.
(TailleRec etant la taille de la concatenation de tous les champs.)
La taille n'est pas dans le programme qui serra complilé, mais dans le
fichier ini.
Sinon plus d'interet d'avoir un serveur ... MDR
Décidement je vais finir par m'arracher les cheveux .....
Hello,
Rien de sorcier cependant. Mais il faut lire la doc de Put dans l'aide de
VB
qui explique clairement comment faire.
Je cite :
"If the variable being written is a Variant of VarType 8 (String),
"Put writes 2 bytes identifying the VarType, 2 bytes indicating
the length of the string, and then writes the string data. The
record length specified by the Len clause in the Open statement
must be at least 4 bytes greater than the actual length
of the string."
Ici, c'est tout simple :
Dim f As Integer
Dim TailleRecord As Long
Dim s As Variant
Dim buffer As String
' taille reçue du serveur
TailleRecord = 20
s = Space$(TailleRecord)
' données reçues du serveur, peut même être moins
' que 20
buffer = "1234657890"
' on met dans s
Mid$(s, 1, TailleRecord) = buffer
' et on écrit - Noter le "+4"
f = FreeFile
Open "c:tutu.txt" For Random As #f Len = TailleRecord + 4
Put #f, 1, s
Close #f
' prouvons que cela marche :
buffer = ""
f = FreeFile
Open "c:tutu.txt" For Random As #f Len = TailleRecord + 4
Get #f, 1, s
Close #f
buffer = CStr(s)
Debug.Print "->" & buffer & "<- " & len(buffer)
L'astuce, c'est le "+ 4" : 2 bytes pour le type de variant et 2 bytes
pour la longueur de la chaine, que chaque Put va écrire devant les
données, pour chaque record.
On notera que c'est un des rares cas ou l'utilisation d'un
variant est judicieuse.
Ton problème est donc réglé :-)
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Marc wrote:Bon j'ai trouvé une solution , mais ca coince encore:
Comme cela ca fonctionne:
Dim Test as string * 10
Test="AAAAAAAAAA"
Open "c:test.dat" For Random As #1 Len = 10
Put #1, 1, Test
Close #1
Coté Serveur il faudrait pouvoir mettre dim Test as string *
TailleRec et la il veut une constante apres *.
(TailleRec etant la taille de la concatenation de tous les champs.)
La taille n'est pas dans le programme qui serra complilé, mais dans le
fichier ini.
Sinon plus d'interet d'avoir un serveur ... MDR
Décidement je vais finir par m'arracher les cheveux .....
Hello,
Rien de sorcier cependant. Mais il faut lire la doc de Put dans l'aide de
VB
qui explique clairement comment faire.
Je cite :
"If the variable being written is a Variant of VarType 8 (String),
"Put writes 2 bytes identifying the VarType, 2 bytes indicating
the length of the string, and then writes the string data. The
record length specified by the Len clause in the Open statement
must be at least 4 bytes greater than the actual length
of the string."
Ici, c'est tout simple :
Dim f As Integer
Dim TailleRecord As Long
Dim s As Variant
Dim buffer As String
' taille reçue du serveur
TailleRecord = 20
s = Space$(TailleRecord)
' données reçues du serveur, peut même être moins
' que 20
buffer = "1234657890"
' on met dans s
Mid$(s, 1, TailleRecord) = buffer
' et on écrit - Noter le "+4"
f = FreeFile
Open "c:tutu.txt" For Random As #f Len = TailleRecord + 4
Put #f, 1, s
Close #f
' prouvons que cela marche :
buffer = ""
f = FreeFile
Open "c:tutu.txt" For Random As #f Len = TailleRecord + 4
Get #f, 1, s
Close #f
buffer = CStr(s)
Debug.Print "->" & buffer & "<- " & len(buffer)
L'astuce, c'est le "+ 4" : 2 bytes pour le type de variant et 2 bytes
pour la longueur de la chaine, que chaque Put va écrire devant les
données, pour chaque record.
On notera que c'est un des rares cas ou l'utilisation d'un
variant est judicieuse.
Ton problème est donc réglé :-)
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Grand Merci Jean-Marc :)
Ca marche super bien.
Tu me sauves la mise car je ne comprenais plus rien.
Cela me cassait vriament les pieds d'être obliger de ne pas
fonctionner mon logiciel avec un serveur et plusieurs clients.
le coup des 4 alors là ........
Je me doutais qu'il y'avais un stockage quelque part.
Le put tu as trouvé ca ou dans la le msdn fourni avec le packacge VB6
Encore merci parce que la vraiment, chercher dans tous les sens plus
les gamins en vacances à la maison ....
Grand Merci Jean-Marc :)
Ca marche super bien.
Tu me sauves la mise car je ne comprenais plus rien.
Cela me cassait vriament les pieds d'être obliger de ne pas
fonctionner mon logiciel avec un serveur et plusieurs clients.
le coup des 4 alors là ........
Je me doutais qu'il y'avais un stockage quelque part.
Le put tu as trouvé ca ou dans la le msdn fourni avec le packacge VB6
Encore merci parce que la vraiment, chercher dans tous les sens plus
les gamins en vacances à la maison ....
Grand Merci Jean-Marc :)
Ca marche super bien.
Tu me sauves la mise car je ne comprenais plus rien.
Cela me cassait vriament les pieds d'être obliger de ne pas
fonctionner mon logiciel avec un serveur et plusieurs clients.
le coup des 4 alors là ........
Je me doutais qu'il y'avais un stockage quelque part.
Le put tu as trouvé ca ou dans la le msdn fourni avec le packacge VB6
Encore merci parce que la vraiment, chercher dans tous les sens plus
les gamins en vacances à la maison ....
Marc wrote:Grand Merci Jean-Marc :)
De rien :-)Ca marche super bien.
Content de l'entendre !Tu me sauves la mise car je ne comprenais plus rien.
Cela me cassait vriament les pieds d'être obliger de ne pas
fonctionner mon logiciel avec un serveur et plusieurs clients.
le coup des 4 alors là ........
Je me doutais qu'il y'avais un stockage quelque part.
Le put tu as trouvé ca ou dans la le msdn fourni avec le packacge VB6
Tout à fait. Dans l'aide en ligne, ou alors sur Internet dans le MSDN
livre : http://msdn.microsoft.com/en-us/library/aa266212(VS.60).aspx
Encore merci parce que la vraiment, chercher dans tous les sens plus
les gamins en vacances à la maison ....
J'ai aussi une fille de 1 an, c'est vrai : ça n'aide pas :-))
Bien cordialement,
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Marc wrote:
Grand Merci Jean-Marc :)
De rien :-)
Ca marche super bien.
Content de l'entendre !
Tu me sauves la mise car je ne comprenais plus rien.
Cela me cassait vriament les pieds d'être obliger de ne pas
fonctionner mon logiciel avec un serveur et plusieurs clients.
le coup des 4 alors là ........
Je me doutais qu'il y'avais un stockage quelque part.
Le put tu as trouvé ca ou dans la le msdn fourni avec le packacge VB6
Tout à fait. Dans l'aide en ligne, ou alors sur Internet dans le MSDN
livre : http://msdn.microsoft.com/en-us/library/aa266212(VS.60).aspx
Encore merci parce que la vraiment, chercher dans tous les sens plus
les gamins en vacances à la maison ....
J'ai aussi une fille de 1 an, c'est vrai : ça n'aide pas :-))
Bien cordialement,
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Marc wrote:Grand Merci Jean-Marc :)
De rien :-)Ca marche super bien.
Content de l'entendre !Tu me sauves la mise car je ne comprenais plus rien.
Cela me cassait vriament les pieds d'être obliger de ne pas
fonctionner mon logiciel avec un serveur et plusieurs clients.
le coup des 4 alors là ........
Je me doutais qu'il y'avais un stockage quelque part.
Le put tu as trouvé ca ou dans la le msdn fourni avec le packacge VB6
Tout à fait. Dans l'aide en ligne, ou alors sur Internet dans le MSDN
livre : http://msdn.microsoft.com/en-us/library/aa266212(VS.60).aspx
Encore merci parce que la vraiment, chercher dans tous les sens plus
les gamins en vacances à la maison ....
J'ai aussi une fille de 1 an, c'est vrai : ça n'aide pas :-))
Bien cordialement,
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Re-Bonjour à tous,
J'ai encore une question sur les type
peut on passer un type en argument à une fonction ?
Sachant que cette fonction peut recevoir plusieurs type
différents(différents enregistrements de taille différents)
Par avance merci
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Re-Bonjour à tous,
J'ai encore une question sur les type
peut on passer un type en argument à une fonction ?
Sachant que cette fonction peut recevoir plusieurs type
différents(différents enregistrements de taille différents)
Par avance merci
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Re-Bonjour à tous,
J'ai encore une question sur les type
peut on passer un type en argument à une fonction ?
Sachant que cette fonction peut recevoir plusieurs type
différents(différents enregistrements de taille différents)
Par avance merci
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;