En fait, une fonction recoit l'ordre d'écrire un rec dans un fichier avec le handle.
Plutot que de faire un select case pour choisir le type est il possible de passer le type directement ?
Marc
"jean-marc" a écrit dans le message de news: 4b13a62d$0$2870$
"Marc" wrote in message news:
Re-Bonjour à tous,
Hello,
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
pas sur de comprendre la question. On peut passer autant d'arguments que l'on veut à une fonction ? La encore, simple question de design de l'application.
En fait, une fonction recoit l'ordre d'écrire un rec dans un fichier avec
le handle.
Plutot que de faire un select case pour choisir le type est il possible de
passer le type directement ?
Marc
"jean-marc" <jean_marc_n2@yahoo.fr.invalid> a écrit dans le message de news:
4b13a62d$0$2870$ba620e4c@news.skynet.be...
"Marc" <contact@asubstra.com> wrote in message
news:eeXpmQZcKHA.2184@TK2MSFTNGP04.phx.gbl...
Re-Bonjour à tous,
Hello,
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
pas sur de comprendre la question. On peut passer
autant d'arguments que l'on veut à une fonction ?
La encore, simple question de design de l'application.
En fait, une fonction recoit l'ordre d'écrire un rec dans un fichier avec le handle.
Plutot que de faire un select case pour choisir le type est il possible de passer le type directement ?
Marc
"jean-marc" a écrit dans le message de news: 4b13a62d$0$2870$
"Marc" wrote in message news:
Re-Bonjour à tous,
Hello,
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
pas sur de comprendre la question. On peut passer autant d'arguments que l'on veut à une fonction ? La encore, simple question de design de l'application.
voici voila, au fait j'ai une autre question en plus la taille d'un enregistrement est limité à combien en string ?
Public Function Addnew(ByVal HandleDat As Integer, ByVal HandleIdx As Integer, ByVal NomRec As String) As String
On Error Resume Next
NumRec = 1 Err = 0 'Calcul Position If LOF(HandleDat) < Val(FichierDat(HandleDat, 2)) Then Position = 1 Else Position = (LOF(HandleDat) / (Val(FichierDat(HandleDat, 2)) + 4)) + 1 End If
Select Case NomRec Case "Pour" Put HandleDat, Position, CSPour End Select
'HandleIdx est utiliser pour ecrire l'index
If Err = 0 Then Addnew = AStr(Position) Else Addnew = "-1" End If End Function
"jean-marc" a écrit dans le message de news: 4b13c860$0$2853$
"Marc" wrote in message news:
En fait, une fonction recoit l'ordre d'écrire un rec dans un fichier avec le handle.
Plutot que de faire un select case pour choisir le type est il possible de passer le type directement ?
Mais le Select Case est fait sur quoi alors ? sur le type, non ?
peux tu donner ici le prototype de la fonction que tu utilises pour le moment ? Ca sera sans doute plus clair.
voici voila, au fait j'ai une autre question en plus la taille d'un
enregistrement est limité à combien en string ?
Public Function Addnew(ByVal HandleDat As Integer, ByVal HandleIdx As
Integer, ByVal NomRec As String) As String
On Error Resume Next
NumRec = 1
Err = 0
'Calcul Position
If LOF(HandleDat) < Val(FichierDat(HandleDat, 2)) Then
Position = 1
Else
Position = (LOF(HandleDat) / (Val(FichierDat(HandleDat, 2)) + 4)) +
1
End If
Select Case NomRec
Case "Pour"
Put HandleDat, Position, CSPour
End Select
'HandleIdx est utiliser pour ecrire l'index
If Err = 0 Then
Addnew = AStr(Position)
Else
Addnew = "-1"
End If
End Function
"jean-marc" <jean_marc_n2@yahoo.fr.invalid> a écrit dans le message de news:
4b13c860$0$2853$ba620e4c@news.skynet.be...
"Marc" <contact@asubstra.com> wrote in message
news:ODS6cCbcKHA.2164@TK2MSFTNGP02.phx.gbl...
En fait, une fonction recoit l'ordre d'écrire un rec dans un fichier
avec le handle.
Plutot que de faire un select case pour choisir le type est il possible
de passer le type directement ?
Mais le Select Case est fait sur quoi alors ? sur le type, non ?
peux tu donner ici le prototype de la fonction que tu utilises pour le
moment ? Ca sera sans doute plus clair.
voici voila, au fait j'ai une autre question en plus la taille d'un enregistrement est limité à combien en string ?
Public Function Addnew(ByVal HandleDat As Integer, ByVal HandleIdx As Integer, ByVal NomRec As String) As String
On Error Resume Next
NumRec = 1 Err = 0 'Calcul Position If LOF(HandleDat) < Val(FichierDat(HandleDat, 2)) Then Position = 1 Else Position = (LOF(HandleDat) / (Val(FichierDat(HandleDat, 2)) + 4)) + 1 End If
Select Case NomRec Case "Pour" Put HandleDat, Position, CSPour End Select
'HandleIdx est utiliser pour ecrire l'index
If Err = 0 Then Addnew = AStr(Position) Else Addnew = "-1" End If End Function
"jean-marc" a écrit dans le message de news: 4b13c860$0$2853$
"Marc" wrote in message news:
En fait, une fonction recoit l'ordre d'écrire un rec dans un fichier avec le handle.
Plutot que de faire un select case pour choisir le type est il possible de passer le type directement ?
Mais le Select Case est fait sur quoi alors ? sur le type, non ?
peux tu donner ici le prototype de la fonction que tu utilises pour le moment ? Ca sera sans doute plus clair.
voici voila, au fait j'ai une autre question en plus la taille d'un enregistrement est limité à combien en string ?
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais est simple.
Public Function Addnew(ByVal HandleDat As Integer, ByVal HandleIdx As Integer, ByVal NomRec As String) As String
On Error Resume Next
NumRec = 1 Err = 0 'Calcul Position If LOF(HandleDat) < Val(FichierDat(HandleDat, 2)) Then Position = 1 Else Position = (LOF(HandleDat) / (Val(FichierDat(HandleDat, 2)) + 4)) + 1 End If
Select Case NomRec Case "Pour" Put HandleDat, Position, CSPour End Select
'HandleIdx est utiliser pour ecrire l'index
If Err = 0 Then Addnew = AStr(Position) Else Addnew = "-1" End If End Function
Je n'ai toujours rien compris :-( Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
---
(sinon, rien à voir, mais ta gestion des erreurs est très dangereuse: ici, tu risques carrément d'écraser donc de corrompre ton fichier de données!).
La bonne façon de faire :
Public Function MaFonction(ByVal param As Integer) As Long Dim ValeurRetour As Long
On Error GoTo MaFonction_ERR
' traitement ' ValeurRetour = xxx
' ...
MaFonction = ValeurRetour
MaFonction_END: Exit Function
MaFonction_ERR: MaFonction = -1 Resume MaFonction_END End Function
voici voila, au fait j'ai une autre question en plus la taille d'un
enregistrement est limité à combien en string ?
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais
est simple.
Public Function Addnew(ByVal HandleDat As Integer, ByVal HandleIdx As
Integer, ByVal NomRec As String) As String
On Error Resume Next
NumRec = 1
Err = 0
'Calcul Position
If LOF(HandleDat) < Val(FichierDat(HandleDat, 2)) Then
Position = 1
Else
Position = (LOF(HandleDat) / (Val(FichierDat(HandleDat, 2)) +
4)) + 1
End If
Select Case NomRec
Case "Pour"
Put HandleDat, Position, CSPour
End Select
'HandleIdx est utiliser pour ecrire l'index
If Err = 0 Then
Addnew = AStr(Position)
Else
Addnew = "-1"
End If
End Function
Je n'ai toujours rien compris :-(
Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
---
(sinon, rien à voir, mais ta gestion des erreurs est très dangereuse:
ici, tu risques carrément d'écraser donc de corrompre ton
fichier de données!).
La bonne façon de faire :
Public Function MaFonction(ByVal param As Integer) As Long
Dim ValeurRetour As Long
On Error GoTo MaFonction_ERR
' traitement
' ValeurRetour = xxx
' ...
MaFonction = ValeurRetour
MaFonction_END:
Exit Function
MaFonction_ERR:
MaFonction = -1
Resume MaFonction_END
End Function
voici voila, au fait j'ai une autre question en plus la taille d'un enregistrement est limité à combien en string ?
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais est simple.
Public Function Addnew(ByVal HandleDat As Integer, ByVal HandleIdx As Integer, ByVal NomRec As String) As String
On Error Resume Next
NumRec = 1 Err = 0 'Calcul Position If LOF(HandleDat) < Val(FichierDat(HandleDat, 2)) Then Position = 1 Else Position = (LOF(HandleDat) / (Val(FichierDat(HandleDat, 2)) + 4)) + 1 End If
Select Case NomRec Case "Pour" Put HandleDat, Position, CSPour End Select
'HandleIdx est utiliser pour ecrire l'index
If Err = 0 Then Addnew = AStr(Position) Else Addnew = "-1" End If End Function
Je n'ai toujours rien compris :-( Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
---
(sinon, rien à voir, mais ta gestion des erreurs est très dangereuse: ici, tu risques carrément d'écraser donc de corrompre ton fichier de données!).
La bonne façon de faire :
Public Function MaFonction(ByVal param As Integer) As Long Dim ValeurRetour As Long
On Error GoTo MaFonction_ERR
' traitement ' ValeurRetour = xxx
' ...
MaFonction = ValeurRetour
MaFonction_END: Exit Function
MaFonction_ERR: MaFonction = -1 Resume MaFonction_END End Function
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais est simple.
A priori un enregistrement de 2065 caractères n'a pas l'air de passer ...
Je n'ai toujours rien compris :-( Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
En fait la fonction ecrit dans plusieurs fichiers differents d'ou le handledat(fichier dat) et le handleidx (pour l'index). Le type CSPour et un type d'enregistrement, mais en fait j'ai plusieurs type d'enregistrements ayant dans mon logiciel plusieurs fichiers differents.
Je voudrais n'utiliser qu'une seule fonction pour ecrire dans les fichiers d'ou ma question pour passer un type plutôt qu'un argument qui determinera le type a écrire.
"Jean-marc" a écrit dans le message de news: 4b142049$0$2858$
Marc wrote:
voici voila, au fait j'ai une autre question en plus la taille d'un enregistrement est limité à combien en string ?
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais est simple.
Public Function Addnew(ByVal HandleDat As Integer, ByVal HandleIdx As Integer, ByVal NomRec As String) As String
On Error Resume Next
NumRec = 1 Err = 0 'Calcul Position If LOF(HandleDat) < Val(FichierDat(HandleDat, 2)) Then Position = 1 Else Position = (LOF(HandleDat) / (Val(FichierDat(HandleDat, 2)) + 4)) + 1 End If
Select Case NomRec Case "Pour" Put HandleDat, Position, CSPour End Select
'HandleIdx est utiliser pour ecrire l'index
If Err = 0 Then Addnew = AStr(Position) Else Addnew = "-1" End If End Function
Je n'ai toujours rien compris :-( Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
---
(sinon, rien à voir, mais ta gestion des erreurs est très dangereuse: ici, tu risques carrément d'écraser donc de corrompre ton fichier de données!).
La bonne façon de faire :
Public Function MaFonction(ByVal param As Integer) As Long Dim ValeurRetour As Long
On Error GoTo MaFonction_ERR
' traitement ' ValeurRetour = xxx
' ...
MaFonction = ValeurRetour
MaFonction_END: Exit Function
MaFonction_ERR: MaFonction = -1 Resume MaFonction_END End Function
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais
est simple.
A priori un enregistrement de 2065 caractères n'a pas l'air de passer ...
Je n'ai toujours rien compris :-(
Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
En fait la fonction ecrit dans plusieurs fichiers differents d'ou le
handledat(fichier dat) et le handleidx (pour l'index).
Le type CSPour et un type d'enregistrement, mais en fait j'ai plusieurs type
d'enregistrements ayant dans mon logiciel plusieurs fichiers differents.
Je voudrais n'utiliser qu'une seule fonction pour ecrire dans les fichiers
d'ou ma question pour passer un type plutôt qu'un argument qui determinera
le type a écrire.
"Jean-marc" <jm@nowhere.invalid> a écrit dans le message de news:
4b142049$0$2858$ba620e4c@news.skynet.be...
Marc wrote:
voici voila, au fait j'ai une autre question en plus la taille d'un
enregistrement est limité à combien en string ?
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais
est simple.
Public Function Addnew(ByVal HandleDat As Integer, ByVal HandleIdx As
Integer, ByVal NomRec As String) As String
On Error Resume Next
NumRec = 1
Err = 0
'Calcul Position
If LOF(HandleDat) < Val(FichierDat(HandleDat, 2)) Then
Position = 1
Else
Position = (LOF(HandleDat) / (Val(FichierDat(HandleDat, 2)) +
4)) + 1
End If
Select Case NomRec
Case "Pour"
Put HandleDat, Position, CSPour
End Select
'HandleIdx est utiliser pour ecrire l'index
If Err = 0 Then
Addnew = AStr(Position)
Else
Addnew = "-1"
End If
End Function
Je n'ai toujours rien compris :-(
Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
---
(sinon, rien à voir, mais ta gestion des erreurs est très dangereuse:
ici, tu risques carrément d'écraser donc de corrompre ton
fichier de données!).
La bonne façon de faire :
Public Function MaFonction(ByVal param As Integer) As Long
Dim ValeurRetour As Long
On Error GoTo MaFonction_ERR
' traitement
' ValeurRetour = xxx
' ...
MaFonction = ValeurRetour
MaFonction_END:
Exit Function
MaFonction_ERR:
MaFonction = -1
Resume MaFonction_END
End Function
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais est simple.
A priori un enregistrement de 2065 caractères n'a pas l'air de passer ...
Je n'ai toujours rien compris :-( Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
En fait la fonction ecrit dans plusieurs fichiers differents d'ou le handledat(fichier dat) et le handleidx (pour l'index). Le type CSPour et un type d'enregistrement, mais en fait j'ai plusieurs type d'enregistrements ayant dans mon logiciel plusieurs fichiers differents.
Je voudrais n'utiliser qu'une seule fonction pour ecrire dans les fichiers d'ou ma question pour passer un type plutôt qu'un argument qui determinera le type a écrire.
"Jean-marc" a écrit dans le message de news: 4b142049$0$2858$
Marc wrote:
voici voila, au fait j'ai une autre question en plus la taille d'un enregistrement est limité à combien en string ?
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais est simple.
Public Function Addnew(ByVal HandleDat As Integer, ByVal HandleIdx As Integer, ByVal NomRec As String) As String
On Error Resume Next
NumRec = 1 Err = 0 'Calcul Position If LOF(HandleDat) < Val(FichierDat(HandleDat, 2)) Then Position = 1 Else Position = (LOF(HandleDat) / (Val(FichierDat(HandleDat, 2)) + 4)) + 1 End If
Select Case NomRec Case "Pour" Put HandleDat, Position, CSPour End Select
'HandleIdx est utiliser pour ecrire l'index
If Err = 0 Then Addnew = AStr(Position) Else Addnew = "-1" End If End Function
Je n'ai toujours rien compris :-( Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
---
(sinon, rien à voir, mais ta gestion des erreurs est très dangereuse: ici, tu risques carrément d'écraser donc de corrompre ton fichier de données!).
La bonne façon de faire :
Public Function MaFonction(ByVal param As Integer) As Long Dim ValeurRetour As Long
On Error GoTo MaFonction_ERR
' traitement ' ValeurRetour = xxx
' ...
MaFonction = ValeurRetour
MaFonction_END: Exit Function
MaFonction_ERR: MaFonction = -1 Resume MaFonction_END End Function
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais est simple.
A priori un enregistrement de 2065 caractères n'a pas l'air de passer ...
J'ai vérifié, la limite est 64 Ko. Si tu as un problème, ce n'est pas à cause de la taille de la chaine.
Ceci fonctionne par exemple:
Private Sub Form_Load() Dim f As Integer Dim szBuffer As String Dim i As Long
Const REC_LEN As Long = 4096
f = FreeFile Open "c:toto.txt" For Random Access Write As #f Len = REC_LEN + 2 For i = 1 To 10 szBuffer = String$(REC_LEN, Chr$(64 + i)) Put #f, , szBuffer Next i
Close #f
End Sub
Je n'ai toujours rien compris :-( Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
En fait la fonction ecrit dans plusieurs fichiers differents d'ou le handledat(fichier dat) et le handleidx (pour l'index). Le type CSPour et un type d'enregistrement, mais en fait j'ai plusieurs type d'enregistrements ayant dans mon logiciel plusieurs fichiers differents.
ok. Problème de design donc, difficile de t'aider plus sans tout revoir. Tel quel, pas d'autre choix que d'écrire des fonctions séparées ou une fonction avec un gros select case.
Cordialement,
-- Jean-Marc
"Marc" <contact@asubstra.com> wrote in message
news:uUXxM8lcKHA.5796@TK2MSFTNGP06.phx.gbl...
Merci Jean-Marc pour ton aide.
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais
est simple.
A priori un enregistrement de 2065 caractères n'a pas l'air de passer ...
J'ai vérifié, la limite est 64 Ko. Si tu as un problème, ce n'est pas à
cause de la taille de la chaine.
Ceci fonctionne par exemple:
Private Sub Form_Load()
Dim f As Integer
Dim szBuffer As String
Dim i As Long
Const REC_LEN As Long = 4096
f = FreeFile
Open "c:toto.txt" For Random Access Write As #f Len = REC_LEN + 2
For i = 1 To 10
szBuffer = String$(REC_LEN, Chr$(64 + i))
Put #f, , szBuffer
Next i
Close #f
End Sub
Je n'ai toujours rien compris :-(
Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
En fait la fonction ecrit dans plusieurs fichiers differents d'ou le
handledat(fichier dat) et le handleidx (pour l'index).
Le type CSPour et un type d'enregistrement, mais en fait j'ai plusieurs
type d'enregistrements ayant dans mon logiciel plusieurs fichiers
differents.
ok. Problème de design donc, difficile de t'aider plus sans tout revoir.
Tel quel, pas d'autre choix que d'écrire des fonctions séparées ou une
fonction avec un gros select case.
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais est simple.
A priori un enregistrement de 2065 caractères n'a pas l'air de passer ...
J'ai vérifié, la limite est 64 Ko. Si tu as un problème, ce n'est pas à cause de la taille de la chaine.
Ceci fonctionne par exemple:
Private Sub Form_Load() Dim f As Integer Dim szBuffer As String Dim i As Long
Const REC_LEN As Long = 4096
f = FreeFile Open "c:toto.txt" For Random Access Write As #f Len = REC_LEN + 2 For i = 1 To 10 szBuffer = String$(REC_LEN, Chr$(64 + i)) Put #f, , szBuffer Next i
Close #f
End Sub
Je n'ai toujours rien compris :-( Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
En fait la fonction ecrit dans plusieurs fichiers differents d'ou le handledat(fichier dat) et le handleidx (pour l'index). Le type CSPour et un type d'enregistrement, mais en fait j'ai plusieurs type d'enregistrements ayant dans mon logiciel plusieurs fichiers differents.
ok. Problème de design donc, difficile de t'aider plus sans tout revoir. Tel quel, pas d'autre choix que d'écrire des fonctions séparées ou une fonction avec un gros select case.
Cordialement,
-- Jean-Marc
Marc
Ok merci beaucoup pour tes infos Jean-Marc
"jean-marc" a écrit dans le message de news: 4b14f845$0$2854$
"Marc" wrote in message news:
Merci Jean-Marc pour ton aide.
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais est simple.
A priori un enregistrement de 2065 caractères n'a pas l'air de passer ...
J'ai vérifié, la limite est 64 Ko. Si tu as un problème, ce n'est pas à cause de la taille de la chaine.
Ceci fonctionne par exemple:
Private Sub Form_Load() Dim f As Integer Dim szBuffer As String Dim i As Long
Const REC_LEN As Long = 4096
f = FreeFile Open "c:toto.txt" For Random Access Write As #f Len = REC_LEN + 2 For i = 1 To 10 szBuffer = String$(REC_LEN, Chr$(64 + i)) Put #f, , szBuffer Next i
Close #f
End Sub
Je n'ai toujours rien compris :-( Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
En fait la fonction ecrit dans plusieurs fichiers differents d'ou le handledat(fichier dat) et le handleidx (pour l'index). Le type CSPour et un type d'enregistrement, mais en fait j'ai plusieurs type d'enregistrements ayant dans mon logiciel plusieurs fichiers differents.
ok. Problème de design donc, difficile de t'aider plus sans tout revoir. Tel quel, pas d'autre choix que d'écrire des fonctions séparées ou une fonction avec un gros select case.
Cordialement,
-- Jean-Marc
Ok merci beaucoup pour tes infos Jean-Marc
"jean-marc" <jean_marc_n2@yahoo.fr.invalid> a écrit dans le message de news:
4b14f845$0$2854$ba620e4c@news.skynet.be...
"Marc" <contact@asubstra.com> wrote in message
news:uUXxM8lcKHA.5796@TK2MSFTNGP06.phx.gbl...
Merci Jean-Marc pour ton aide.
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais
est simple.
A priori un enregistrement de 2065 caractères n'a pas l'air de passer ...
J'ai vérifié, la limite est 64 Ko. Si tu as un problème, ce n'est pas à
cause de la taille de la chaine.
Ceci fonctionne par exemple:
Private Sub Form_Load()
Dim f As Integer
Dim szBuffer As String
Dim i As Long
Const REC_LEN As Long = 4096
f = FreeFile
Open "c:toto.txt" For Random Access Write As #f Len = REC_LEN + 2
For i = 1 To 10
szBuffer = String$(REC_LEN, Chr$(64 + i))
Put #f, , szBuffer
Next i
Close #f
End Sub
Je n'ai toujours rien compris :-(
Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
En fait la fonction ecrit dans plusieurs fichiers differents d'ou le
handledat(fichier dat) et le handleidx (pour l'index).
Le type CSPour et un type d'enregistrement, mais en fait j'ai plusieurs
type d'enregistrements ayant dans mon logiciel plusieurs fichiers
differents.
ok. Problème de design donc, difficile de t'aider plus sans tout revoir.
Tel quel, pas d'autre choix que d'écrire des fonctions séparées ou une
fonction avec un gros select case.
"jean-marc" a écrit dans le message de news: 4b14f845$0$2854$
"Marc" wrote in message news:
Merci Jean-Marc pour ton aide.
Hmm, comme ça je ne sais pas. Au moins 32K. Sinon, faire des essais est simple.
A priori un enregistrement de 2065 caractères n'a pas l'air de passer ...
J'ai vérifié, la limite est 64 Ko. Si tu as un problème, ce n'est pas à cause de la taille de la chaine.
Ceci fonctionne par exemple:
Private Sub Form_Load() Dim f As Integer Dim szBuffer As String Dim i As Long
Const REC_LEN As Long = 4096
f = FreeFile Open "c:toto.txt" For Random Access Write As #f Len = REC_LEN + 2 For i = 1 To 10 szBuffer = String$(REC_LEN, Chr$(64 + i)) Put #f, , szBuffer Next i
Close #f
End Sub
Je n'ai toujours rien compris :-( Pourquoi ne passes tu pas CSPour en paramètre, avec le type en plus ??
En fait la fonction ecrit dans plusieurs fichiers differents d'ou le handledat(fichier dat) et le handleidx (pour l'index). Le type CSPour et un type d'enregistrement, mais en fait j'ai plusieurs type d'enregistrements ayant dans mon logiciel plusieurs fichiers differents.
ok. Problème de design donc, difficile de t'aider plus sans tout revoir. Tel quel, pas d'autre choix que d'écrire des fonctions séparées ou une fonction avec un gros select case.