Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup microsoft.public.fr.* 1 Forum > Newsgroup microsoft.public.fr.fox
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 23/07/2008, 09h25
Karine
 
Messages: n/a
Par défaut Winsock - taille des pièces jointes

Bonjour,

Chaque mois je dois transmettre un fichier texte par mail pour cela
j'utilise vfpwinsock.
Cela fonctionne parfaitement jusqu'a une certaine taille de fichier, puis
selon la taille j'ai les erreurs suivantes:
-> Dans winsock_sendmail Alines déclenche une erreur car j'ai plus de 65000
lignes (erreur 31 je crois)
-> Dans winsock_sendmail erreur 1234 indices hors limite
-> Sur les très gros fichiers Erreur 1903 (chaine trop longue) dans Send
c'est lors de la création de This.data
Je renseigne dans la classe smtp_host,from, from name,subject et attachment.
Pour l'instant je vais limité mon fichier texte à 20000 lignes et lorsqu'il
sera plus volumineux je l'enverrai par morceaux
(pour renseignement c'est un fichier texte de 162 caractères par lignes. sur
un fichier de 32712 lignes, this.data en contient 64642 au moment du Alines)
Y a t'il un moyen avec vfpwinsock pour détecter si le fichier est trop
volumineux pour l'envoi?

Cordialement

Karine


Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

  #2 (permalink)  
Vieux 23/07/2008, 10h57
Francis FAURE \(www.atoutfox.org\)
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

Avec quelle version de VFP ?
Avec quelle version de VFP winsock ?
Cordialement
Francis




"Karine" <info_sansspam***sansspam-soft-lan.com> a écrit dans le message de
news:OCIxp2J7IHA.1080***TK2MSFTNGP06.phx.gbl...
> Bonjour,
>
> Chaque mois je dois transmettre un fichier texte par mail pour cela
> j'utilise vfpwinsock.
> Cela fonctionne parfaitement jusqu'a une certaine taille de fichier, puis
> selon la taille j'ai les erreurs suivantes:
> -> Dans winsock_sendmail Alines déclenche une erreur car j'ai plus de

65000
> lignes (erreur 31 je crois)
> -> Dans winsock_sendmail erreur 1234 indices hors limite
> -> Sur les très gros fichiers Erreur 1903 (chaine trop longue) dans Send
> c'est lors de la création de This.data
> Je renseigne dans la classe smtp_host,from, from name,subject et

attachment.
> Pour l'instant je vais limité mon fichier texte à 20000 lignes et

lorsqu'il
> sera plus volumineux je l'enverrai par morceaux
> (pour renseignement c'est un fichier texte de 162 caractères par lignes.

sur
> un fichier de 32712 lignes, this.data en contient 64642 au moment du

Alines)
> Y a t'il un moyen avec vfpwinsock pour détecter si le fichier est trop
> volumineux pour l'envoi?
>
> Cordialement
>
> Karine
>
>



Réponse avec citation
  #3 (permalink)  
Vieux 23/07/2008, 11h52
Karine
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

Bonjour,

VFP 8
vfpwinsock 1.17

Cordialement

Karine


"Francis FAURE (www.atoutfox.org)" <francis.faure[***]dord.com> a écrit dans
le message de news: %23LZleqK7IHA.2336***TK2MSFTNGP03.phx.gbl...
> Avec quelle version de VFP ?
> Avec quelle version de VFP winsock ?
> Cordialement
> Francis
>
>
>
>
> "Karine" <info_sansspam***sansspam-soft-lan.com> a écrit dans le message de
> news:OCIxp2J7IHA.1080***TK2MSFTNGP06.phx.gbl...
>> Bonjour,
>>
>> Chaque mois je dois transmettre un fichier texte par mail pour cela
>> j'utilise vfpwinsock.
>> Cela fonctionne parfaitement jusqu'a une certaine taille de fichier, puis
>> selon la taille j'ai les erreurs suivantes:
>> -> Dans winsock_sendmail Alines déclenche une erreur car j'ai plus de

> 65000
>> lignes (erreur 31 je crois)
>> -> Dans winsock_sendmail erreur 1234 indices hors limite
>> -> Sur les très gros fichiers Erreur 1903 (chaine trop longue) dans Send
>> c'est lors de la création de This.data
>> Je renseigne dans la classe smtp_host,from, from name,subject et

> attachment.
>> Pour l'instant je vais limité mon fichier texte à 20000 lignes et

> lorsqu'il
>> sera plus volumineux je l'enverrai par morceaux
>> (pour renseignement c'est un fichier texte de 162 caractères par lignes.

> sur
>> un fichier de 32712 lignes, this.data en contient 64642 au moment du

> Alines)
>> Y a t'il un moyen avec vfpwinsock pour détecter si le fichier est trop
>> volumineux pour l'envoi?
>>
>> Cordialement
>>
>> Karine
>>
>>

>
>



Réponse avec citation
  #4 (permalink)  
Vieux 23/07/2008, 13h06
Karine
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

C'est une idée.Je teste et Voir si le prestataire à qui j'envoie les
données est OK.

Karine

"Jean à Grenoble" <jsm.maurice***wanadoo.fr> a écrit dans le message de news:
eHXd6hK7IHA.2224***TK2MSFTNGP05.phx.gbl...
> et pourquoi pas le zipper avant de l'envoyer ?
>
> --
> Jean MAURICE
> Grenoble - France - Europe
> www.atoutfox.org
> www.aedtf.org



Réponse avec citation
  #5 (permalink)  
Vieux 23/07/2008, 13h37
Karine
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

Bonjour,

J'ai compressé le fichier avec vfpcompression. Tout est OK. Le fichier
obtenu passe sans problème en piece jointe avec vfpwinsock.

Merci pour l'idée

Karine


"Jean à Grenoble" <jsm.maurice***wanadoo.fr> a écrit dans le message de news:
eHXd6hK7IHA.2224***TK2MSFTNGP05.phx.gbl...
> et pourquoi pas le zipper avant de l'envoyer ?
>
> --
> Jean MAURICE
> Grenoble - France - Europe
> www.atoutfox.org
> www.aedtf.org



Réponse avec citation
  #6 (permalink)  
Vieux 23/07/2008, 19h09
Francis Faure
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

Gregory,

Hum,
je suis d'accord dans le principe et conceptuellement dans tes propos...
Mais....

pour répondre
je ne passe justement PAS par une propriété d'une classe (expres)

Car le probleme est justement la limitation des propriétés de VFP qui ne
support pas plus de 16 Méga

si tu veux t'en convaincre : essayes le code suivant :
o=CREATEOBJECT("truc")
o.Property = ""
FOR i=1 TO 17*1024
? i
o.Property = o.Property + REPLICATE("1",1024)
next
DEFINE CLASS truc as Custom
Property = ""
ENDDEFINE

prends un café,
mais ça va peter à la tronche lorsque i = 16384


le probleme actuel de vfp winsock /send mail est donc bien que j'utilise des
propriétés et subit la limitation de 16Mo

Pascal m'a donné une idée et la solution pour contourner (passer par des
variables),
mais j'avoue ne pas avoir pris le temps de tout re implementer en
variables
car je me dit :
d'une part : qu'un mail de 16Mo .... c'est une erreur de
conception... a mon humble avis...
d'autre part : la majorité des opérateurs internet de laisse pas
passer un mail d'un tel taille (en France)

ceci dit je travail sur la 1.18 de vfp_winsock elle supportera + que 16mo
(pour le principe) mais je vais devoir passer par variables et fichiers
temporaires,
enfin : je sais qua'vant qu'il y a des trucs a optimiser en terme de temps
de traitement

Je vais peut être rajouter une propriété "Zip_Attachment" pour zipper avant
d"expédier


si tu as un peu de temps : je peux te donner des exemples si tu veux
m'aider a optimiser et contribuer ?

Cordialement
Francis




"Gregory" <Gregory***nowhere.com> a écrit dans le message de news:
ORSFLNO7IHA.3976***TK2MSFTNGP06.phx.gbl...
> Francis,
>
> Au sujet de Winsock - alines - suggestion
>
> (1) Au lieu d'etre un chaine de car, j'utiliserais un objet collection
>
> (2) this.data = this.data + .... + CRLF
> this.data.Add(...) && pas de CRLF
>
> (3) l'envoi, au lieu de alines, tu parcours la collection, par item, tu
> envoies le contenu + CRLF
>
> Comme cela, je crois que le probleme de alines() sera disparu
> --
> Gregory
> __
> "Francis FAURE (www.atoutfox.org)" <francis.faure[***]dord.com> wrote in
> message news:%23LZleqK7IHA.2336***TK2MSFTNGP03.phx.gbl...
>> Avec quelle version de VFP ?
>> Avec quelle version de VFP winsock ?
>> Cordialement
>> Francis
>>
>>
>>
>>
>> "Karine" <info_sansspam***sansspam-soft-lan.com> a écrit dans le message de
>> news:OCIxp2J7IHA.1080***TK2MSFTNGP06.phx.gbl...
>>> Bonjour,
>>>
>>> Chaque mois je dois transmettre un fichier texte par mail pour cela
>>> j'utilise vfpwinsock.
>>> Cela fonctionne parfaitement jusqu'a une certaine taille de fichier,
>>> puis
>>> selon la taille j'ai les erreurs suivantes:
>>> -> Dans winsock_sendmail Alines déclenche une erreur car j'ai plus de

>> 65000
>>> lignes (erreur 31 je crois)
>>> -> Dans winsock_sendmail erreur 1234 indices hors limite
>>> -> Sur les très gros fichiers Erreur 1903 (chaine trop longue) dans Send
>>> c'est lors de la création de This.data
>>> Je renseigne dans la classe smtp_host,from, from name,subject et

>> attachment.
>>> Pour l'instant je vais limité mon fichier texte à 20000 lignes et

>> lorsqu'il
>>> sera plus volumineux je l'enverrai par morceaux
>>> (pour renseignement c'est un fichier texte de 162 caractères par lignes.

>> sur
>>> un fichier de 32712 lignes, this.data en contient 64642 au moment du

>> Alines)
>>> Y a t'il un moyen avec vfpwinsock pour détecter si le fichier est trop
>>> volumineux pour l'envoi?
>>>
>>> Cordialement
>>>
>>> Karine
>>>
>>>

>>
>>

>



Réponse avec citation
  #7 (permalink)  
Vieux 24/07/2008, 09h20
Karine
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

Bonjour,

Pour ma part le fichier posant problème était loin de faire 16Mo. Il en fait
à peine 4Mo. Mais Alines ne supporte pas plus de 65000 lignes et dans mon
cas cette limite est dépassée. En fait selon la taille du fichier il y a
trois erreurs différentes : pour les fichiers qui sont juste à la limite des
65000 lignes j'ai l'erreur 31 déclenchée par alines, les fichiers un peu
plus gros j'ai eu l'erreur 1234 sur la boucle qui suit Alines et sur les
fichiers très gros une erreur 1903 bien avant sur la construction de
This.Date. Dans ce dernier cas je pense que c'est la limite de 16 Mo.
Dans mon cas la solution est venu en mettant en oeuvre l'idée emmise ici, je
zippe le fichier avant de l'envoyé et mon fichier de 4Mo n'en fait plus que
700Ko. Pour d'autres utilitaires j'ai ajouté une case à cocher "Compresser
la pièce jointe" et libre à chacun de le faire ou non.

Encore merci à tous pour votre réactivité

Cordialement
Karine


"Francis Faure" <francis.faure_***_dord.com> a écrit dans le message de news:
uTNGA9O7IHA.3692***TK2MSFTNGP05.phx.gbl...
> Gregory,
>
> Hum,
> je suis d'accord dans le principe et conceptuellement dans tes propos...
> Mais....
>
> pour répondre
> je ne passe justement PAS par une propriété d'une classe (expres)
>
> Car le probleme est justement la limitation des propriétés de VFP qui
> ne support pas plus de 16 Méga
>
> si tu veux t'en convaincre : essayes le code suivant :
> o=CREATEOBJECT("truc")
> o.Property = ""
> FOR i=1 TO 17*1024
> ? i
> o.Property = o.Property + REPLICATE("1",1024)
> next
> DEFINE CLASS truc as Custom
> Property = ""
> ENDDEFINE
>
> prends un café,
> mais ça va peter à la tronche lorsque i = 16384
>
>
> le probleme actuel de vfp winsock /send mail est donc bien que j'utilise
> des propriétés et subit la limitation de 16Mo
>
> Pascal m'a donné une idée et la solution pour contourner (passer par des
> variables),
> mais j'avoue ne pas avoir pris le temps de tout re implementer en
> variables
> car je me dit :
> d'une part : qu'un mail de 16Mo .... c'est une erreur de
> conception... a mon humble avis...
> d'autre part : la majorité des opérateurs internet de laisse pas
> passer un mail d'un tel taille (en France)
>
> ceci dit je travail sur la 1.18 de vfp_winsock elle supportera + que 16mo
> (pour le principe) mais je vais devoir passer par variables et fichiers
> temporaires,
> enfin : je sais qua'vant qu'il y a des trucs a optimiser en terme de
> temps de traitement
>
> Je vais peut être rajouter une propriété "Zip_Attachment" pour zipper
> avant d"expédier
>
>
> si tu as un peu de temps : je peux te donner des exemples si tu veux
> m'aider a optimiser et contribuer ?
>
> Cordialement
> Francis
>
>
>
>
> "Gregory" <Gregory***nowhere.com> a écrit dans le message de news:
> ORSFLNO7IHA.3976***TK2MSFTNGP06.phx.gbl...
>> Francis,
>>
>> Au sujet de Winsock - alines - suggestion
>>
>> (1) Au lieu d'etre un chaine de car, j'utiliserais un objet collection
>>
>> (2) this.data = this.data + .... + CRLF
>> this.data.Add(...) && pas de CRLF
>>
>> (3) l'envoi, au lieu de alines, tu parcours la collection, par item, tu
>> envoies le contenu + CRLF
>>
>> Comme cela, je crois que le probleme de alines() sera disparu
>> --
>> Gregory
>> __
>> "Francis FAURE (www.atoutfox.org)" <francis.faure[***]dord.com> wrote in
>> message news:%23LZleqK7IHA.2336***TK2MSFTNGP03.phx.gbl...
>>> Avec quelle version de VFP ?
>>> Avec quelle version de VFP winsock ?
>>> Cordialement
>>> Francis
>>>
>>>
>>>
>>>
>>> "Karine" <info_sansspam***sansspam-soft-lan.com> a écrit dans le message
>>> de
>>> news:OCIxp2J7IHA.1080***TK2MSFTNGP06.phx.gbl...
>>>> Bonjour,
>>>>
>>>> Chaque mois je dois transmettre un fichier texte par mail pour cela
>>>> j'utilise vfpwinsock.
>>>> Cela fonctionne parfaitement jusqu'a une certaine taille de fichier,
>>>> puis
>>>> selon la taille j'ai les erreurs suivantes:
>>>> -> Dans winsock_sendmail Alines déclenche une erreur car j'ai plus de
>>> 65000
>>>> lignes (erreur 31 je crois)
>>>> -> Dans winsock_sendmail erreur 1234 indices hors limite
>>>> -> Sur les très gros fichiers Erreur 1903 (chaine trop longue) dans
>>>> Send
>>>> c'est lors de la création de This.data
>>>> Je renseigne dans la classe smtp_host,from, from name,subject et
>>> attachment.
>>>> Pour l'instant je vais limité mon fichier texte à 20000 lignes et
>>> lorsqu'il
>>>> sera plus volumineux je l'enverrai par morceaux
>>>> (pour renseignement c'est un fichier texte de 162 caractères par
>>>> lignes.
>>> sur
>>>> un fichier de 32712 lignes, this.data en contient 64642 au moment du
>>> Alines)
>>>> Y a t'il un moyen avec vfpwinsock pour détecter si le fichier est trop
>>>> volumineux pour l'envoi?
>>>>
>>>> Cordialement
>>>>
>>>> Karine
>>>>
>>>>
>>>
>>>

>>

>
>



Réponse avec citation
  #8 (permalink)  
Vieux 24/07/2008, 13h47
Francis FAURE \(www.atoutfox.org\)
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

Salut Gregory,

C'est quoi l'idée ?

Pour le fichier source à jour :
http://www.xfrx.fr/vfpwinsock/SendMaildownload.asp
Sinon passe moi ton email

Depuis cette version 1.17, je travail sur la 1.18, mais en gros pour
l'instant il te faut corriger :

function Lire_Base_Registre(p_quoi)
local v_handle, v_account, v_retour

function Lire_Base_Registre(p_quoi)
local v_handle, v_account, v_retour
v_retour = "" && v1.18 oubli d'initialiser la variable
Cordialement







"Gregory" <Gregory***nowhere.com> a écrit dans le message de
news:%23v22bJY7IHA.5024***TK2MSFTNGP03.phx.gbl...
> Bon Francis,
>
> J'ai bu le cafe que tu m'as offert - c'est gentil - merci
>
> Je fais ton test (4*1024) : 11 sec
> Je fais mon test: 0.1 sec
>
> local obj, i
> obj = createobject('truc')
>
> for i=1 to 4*1024
> obj.Property = m.obj.Property + REPLICATE("1",1024)
> next
>
>
>
> Si tu m'envoies ton winsock - avec ton bug corrige !- (je crois que j'ai

la
> version 1.16), je vais integrer mon truc dedans
>
> je ne toucherai qu'a this.DATA - je me perds dans ce grand spaghetti
>
> Karine:
>
> Es-tu prete a faire le test enVFP8 ? Je n'ai que la 9
> --
> Gregory
> __
> "Francis Faure" <francis.faure_***_dord.com> wrote in message
> news:uTNGA9O7IHA.3692***TK2MSFTNGP05.phx.gbl...
> > Gregory,
> >
> > Hum,
> > je suis d'accord dans le principe et conceptuellement dans tes propos...
> > Mais....
> >
> > pour répondre
> > je ne passe justement PAS par une propriété d'une classe (expres)
> >
> > Car le probleme est justement la limitation des propriétés de VFP qui
> > ne support pas plus de 16 Méga
> >
> > si tu veux t'en convaincre : essayes le code suivant :
> > o=CREATEOBJECT("truc")
> > o.Property = ""
> > FOR i=1 TO 17*1024
> > ? i
> > o.Property = o.Property + REPLICATE("1",1024)
> > next
> > DEFINE CLASS truc as Custom
> > Property = ""
> > ENDDEFINE
> >
> > prends un café,
> > mais ça va peter à la tronche lorsque i = 16384
> >
> >
> > le probleme actuel de vfp winsock /send mail est donc bien que j'utilise
> > des propriétés et subit la limitation de 16Mo
> >
> > Pascal m'a donné une idée et la solution pour contourner (passer par des
> > variables),
> > mais j'avoue ne pas avoir pris le temps de tout re implementer en
> > variables
> > car je me dit :
> > d'une part : qu'un mail de 16Mo .... c'est une erreur de
> > conception... a mon humble avis...
> > d'autre part : la majorité des opérateurs internet de laisse pas
> > passer un mail d'un tel taille (en France)
> >
> > ceci dit je travail sur la 1.18 de vfp_winsock elle supportera + que

16mo
> > (pour le principe) mais je vais devoir passer par variables et fichiers
> > temporaires,
> > enfin : je sais qua'vant qu'il y a des trucs a optimiser en terme de
> > temps de traitement
> >
> > Je vais peut être rajouter une propriété "Zip_Attachment" pour zipper
> > avant d"expédier
> >
> >
> > si tu as un peu de temps : je peux te donner des exemples si tu veux
> > m'aider a optimiser et contribuer ?
> >
> > Cordialement
> > Francis
> >
> >
> >
> >
> > "Gregory" <Gregory***nowhere.com> a écrit dans le message de news:
> > ORSFLNO7IHA.3976***TK2MSFTNGP06.phx.gbl...
> >> Francis,
> >>
> >> Au sujet de Winsock - alines - suggestion
> >>
> >> (1) Au lieu d'etre un chaine de car, j'utiliserais un objet collection
> >>
> >> (2) this.data = this.data + .... + CRLF
> >> this.data.Add(...) && pas de CRLF
> >>
> >> (3) l'envoi, au lieu de alines, tu parcours la collection, par item, tu
> >> envoies le contenu + CRLF
> >>
> >> Comme cela, je crois que le probleme de alines() sera disparu
> >> --
> >> Gregory
> >> __
> >> "Francis FAURE (www.atoutfox.org)" <francis.faure[***]dord.com> wrote in
> >> message news:%23LZleqK7IHA.2336***TK2MSFTNGP03.phx.gbl...
> >>> Avec quelle version de VFP ?
> >>> Avec quelle version de VFP winsock ?
> >>> Cordialement
> >>> Francis
> >>>
> >>>
> >>>
> >>>
> >>> "Karine" <info_sansspam***sansspam-soft-lan.com> a écrit dans le message
> >>> de
> >>> news:OCIxp2J7IHA.1080***TK2MSFTNGP06.phx.gbl...
> >>>> Bonjour,
> >>>>
> >>>> Chaque mois je dois transmettre un fichier texte par mail pour cela
> >>>> j'utilise vfpwinsock.
> >>>> Cela fonctionne parfaitement jusqu'a une certaine taille de fichier,
> >>>> puis
> >>>> selon la taille j'ai les erreurs suivantes:
> >>>> -> Dans winsock_sendmail Alines déclenche une erreur car j'ai plus de
> >>> 65000
> >>>> lignes (erreur 31 je crois)
> >>>> -> Dans winsock_sendmail erreur 1234 indices hors limite
> >>>> -> Sur les très gros fichiers Erreur 1903 (chaine trop longue) dans
> >>>> Send
> >>>> c'est lors de la création de This.data
> >>>> Je renseigne dans la classe smtp_host,from, from name,subject et
> >>> attachment.
> >>>> Pour l'instant je vais limité mon fichier texte à 20000 lignes et
> >>> lorsqu'il
> >>>> sera plus volumineux je l'enverrai par morceaux
> >>>> (pour renseignement c'est un fichier texte de 162 caractères par
> >>>> lignes.
> >>> sur
> >>>> un fichier de 32712 lignes, this.data en contient 64642 au moment du
> >>> Alines)
> >>>> Y a t'il un moyen avec vfpwinsock pour détecter si le fichier est

trop
> >>>> volumineux pour l'envoi?
> >>>>
> >>>> Cordialement
> >>>>
> >>>> Karine
> >>>>
> >>>>
> >>>
> >>>
> >>

> >
> >

>



Réponse avec citation
  #9 (permalink)  
Vieux 24/07/2008, 15h06
Francis FAURE \(www.atoutfox.org\)
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

Gregory

Exemple de code a optimizer :

En première lecture, d'après toi, qu'est-ce qui est le plus rapide ?
Comment mieux faire ?



*-----------------------------------------
*
* but insérer CRLF tous les 60 Caractères
*
* source : 1 chaine (lsSource)
* Destination : un tableau (lTab[1,2])
*-----------------------------------------
CLEAR
SET SAFETY off
#define CRLF CHR(13)+CHR(10)
lsSource = REPLICATE("1234567890", 30*1024)
DIMENSION lTab[1,2]

*-----------------------------------------
* Syntaxe 1
liStart= SECONDS()
lTab[1,2] = ""
FOR i = 1 TO LEN(lsSource) STEP 76
lTab[1,2] = lTab[1,2] + SUBSTR(lsSource,i,76) + CRLF
NEXT
? seconds() - liStart


*-----------------------------------------
* Syntaxe 2
liStart= SECONDS()
lsDestination =""
FOR i = 1 TO LEN(lsSource) STEP 76
lsDestination = lsDestination + SUBSTR(lsSource,i,76) + CRLF
NEXT
lTab[1,2] = lsDestination
? seconds() - liStart

*-----------------------------------------
* Syntaxe 3
liStart= SECONDS()
lsDestination =""
v_tmp = "c:\temp\test.txt"
=strtofile(lsSource, v_tmp, .F.)
v_f = Fopen(v_tmp)
do while not Feof(v_f)
lsDestination = lsDestination + Fgets(v_f, 76) + CRLF
enddo
=Fclose(v_f)
erase (v_tmp)
lTab[1,2] = lsDestination
? seconds() - liStart


Réponse avec citation
  #10 (permalink)  
Vieux 24/07/2008, 15h06
Francis FAURE \(www.atoutfox.org\)
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

> Une autre idee - qui marcherait aussi, est de passer par fwrite() et
> fread()


Oui je pense que c'est mieux et plus simple.




"Gregory" <Gregory***nowhere.com> a écrit dans le message de
news:ehnQ9$Y7IHA.4536***TK2MSFTNGP04.phx.gbl...
> Francis,
>
> Le probleme avec vfp sont les string. A peu pres toute operation sur un
> string copie le string.
> Alors ta boucle.... fait chauffer le cpu
>
> Je suis en train de me faire une toute petite classe (StringLong -
> inspiration: Cafe Long) qui utilise quelques api
> (heapAlloc, HeapRealloc, HeapFree, rtlMoveMemory)
> L'idee est toute simple - reste a l'implementer sans bugs
>
> Une autre idee - qui marcherait aussi, est de passer par fwrite() et
> fread()
>
> (Mon email, tu l'as - atoutfox) Je passerai par le lien
>
> Je commence de suite
> --
> Gregory
> __
> "Francis FAURE (www.atoutfox.org)" <francis.faure[***]dord.com> wrote in
> message news:u8avTzY7IHA.2416***TK2MSFTNGP02.phx.gbl...
> > Salut Gregory,
> >
> > C'est quoi l'idée ?
> >
> > Pour le fichier source à jour :
> > http://www.xfrx.fr/vfpwinsock/SendMaildownload.asp
> > Sinon passe moi ton email
> >
> > Depuis cette version 1.17, je travail sur la 1.18, mais en gros pour
> > l'instant il te faut corriger :
> >
> > function Lire_Base_Registre(p_quoi)
> > local v_handle, v_account, v_retour
> >
> > function Lire_Base_Registre(p_quoi)
> > local v_handle, v_account, v_retour
> > v_retour = "" && v1.18 oubli d'initialiser la variable
> > Cordialement
> >
> >
> >
> >
> >
> >
> >
> > "Gregory" <Gregory***nowhere.com> a écrit dans le message de
> > news:%23v22bJY7IHA.5024***TK2MSFTNGP03.phx.gbl...
> >> Bon Francis,
> >>
> >> J'ai bu le cafe que tu m'as offert - c'est gentil - merci
> >>
> >> Je fais ton test (4*1024) : 11 sec
> >> Je fais mon test: 0.1 sec
> >>
> >> local obj, i
> >> obj = createobject('truc')
> >>
> >> for i=1 to 4*1024
> >> obj.Property = m.obj.Property + REPLICATE("1",1024)
> >> next
> >>
> >>
> >>
> >> Si tu m'envoies ton winsock - avec ton bug corrige !- (je crois que

j'ai
> > la
> >> version 1.16), je vais integrer mon truc dedans
> >>
> >> je ne toucherai qu'a this.DATA - je me perds dans ce grand spaghetti
> >>
> >> Karine:
> >>
> >> Es-tu prete a faire le test enVFP8 ? Je n'ai que la 9
> >> --
> >> Gregory
> >> __
> >> "Francis Faure" <francis.faure_***_dord.com> wrote in message
> >> news:uTNGA9O7IHA.3692***TK2MSFTNGP05.phx.gbl...
> >> > Gregory,
> >> >
> >> > Hum,
> >> > je suis d'accord dans le principe et conceptuellement dans tes
> >> > propos...
> >> > Mais....
> >> >
> >> > pour répondre
> >> > je ne passe justement PAS par une propriété d'une classe (expres)
> >> >
> >> > Car le probleme est justement la limitation des propriétés de VFP
> >> > qui
> >> > ne support pas plus de 16 Méga
> >> >
> >> > si tu veux t'en convaincre : essayes le code suivant :
> >> > o=CREATEOBJECT("truc")
> >> > o.Property = ""
> >> > FOR i=1 TO 17*1024
> >> > ? i
> >> > o.Property = o.Property + REPLICATE("1",1024)
> >> > next
> >> > DEFINE CLASS truc as Custom
> >> > Property = ""
> >> > ENDDEFINE
> >> >
> >> > prends un café,
> >> > mais ça va peter à la tronche lorsque i = 16384
> >> >
> >> >
> >> > le probleme actuel de vfp winsock /send mail est donc bien que
> >> > j'utilise
> >> > des propriétés et subit la limitation de 16Mo
> >> >
> >> > Pascal m'a donné une idée et la solution pour contourner (passer par
> >> > des
> >> > variables),
> >> > mais j'avoue ne pas avoir pris le temps de tout re implementer en
> >> > variables
> >> > car je me dit :
> >> > d'une part : qu'un mail de 16Mo .... c'est une erreur de
> >> > conception... a mon humble avis...
> >> > d'autre part : la majorité des opérateurs internet de laisse

pas
> >> > passer un mail d'un tel taille (en France)
> >> >
> >> > ceci dit je travail sur la 1.18 de vfp_winsock elle supportera + que

> > 16mo
> >> > (pour le principe) mais je vais devoir passer par variables et

fichiers
> >> > temporaires,
> >> > enfin : je sais qua'vant qu'il y a des trucs a optimiser en terme de
> >> > temps de traitement
> >> >
> >> > Je vais peut être rajouter une propriété "Zip_Attachment" pour zipper
> >> > avant d"expédier
> >> >
> >> >
> >> > si tu as un peu de temps : je peux te donner des exemples si tu

veux
> >> > m'aider a optimiser et contribuer ?
> >> >
> >> > Cordialement
> >> > Francis
> >> >
> >> >
> >> >
> >> >
> >> > "Gregory" <Gregory***nowhere.com> a écrit dans le message de news:
> >> > ORSFLNO7IHA.3976***TK2MSFTNGP06.phx.gbl...
> >> >> Francis,
> >> >>
> >> >> Au sujet de Winsock - alines - suggestion
> >> >>
> >> >> (1) Au lieu d'etre un chaine de car, j'utiliserais un objet

collection
> >> >>
> >> >> (2) this.data = this.data + .... + CRLF
> >> >> this.data.Add(...) && pas de CRLF
> >> >>
> >> >> (3) l'envoi, au lieu de alines, tu parcours la collection, par item,
> >> >> tu
> >> >> envoies le contenu + CRLF
> >> >>
> >> >> Comme cela, je crois que le probleme de alines() sera disparu
> >> >> --
> >> >> Gregory
> >> >> __
> >> >> "Francis FAURE (www.atoutfox.org)" <francis.faure[***]dord.com> wrote

in
> >> >> message news:%23LZleqK7IHA.2336***TK2MSFTNGP03.phx.gbl...
> >> >>> Avec quelle version de VFP ?
> >> >>> Avec quelle version de VFP winsock ?
> >> >>> Cordialement
> >> >>> Francis
> >> >>>
> >> >>>
> >> >>>
> >> >>>
> >> >>> "Karine" <info_sansspam***sansspam-soft-lan.com> a écrit dans le
> >> >>> message
> >> >>> de
> >> >>> news:OCIxp2J7IHA.1080***TK2MSFTNGP06.phx.gbl...
> >> >>>> Bonjour,
> >> >>>>
> >> >>>> Chaque mois je dois transmettre un fichier texte par mail pour

cela
> >> >>>> j'utilise vfpwinsock.
> >> >>>> Cela fonctionne parfaitement jusqu'a une certaine taille de

fichier,
> >> >>>> puis
> >> >>>> selon la taille j'ai les erreurs suivantes:
> >> >>>> -> Dans winsock_sendmail Alines déclenche une erreur car j'ai plus
> >> >>>> de
> >> >>> 65000
> >> >>>> lignes (erreur 31 je crois)
> >> >>>> -> Dans winsock_sendmail erreur 1234 indices hors limite
> >> >>>> -> Sur les très gros fichiers Erreur 1903 (chaine trop longue)

dans
> >> >>>> Send
> >> >>>> c'est lors de la création de This.data
> >> >>>> Je renseigne dans la classe smtp_host,from, from name,subject et
> >> >>> attachment.
> >> >>>> Pour l'instant je vais limité mon fichier texte à 20000 lignes et
> >> >>> lorsqu'il
> >> >>>> sera plus volumineux je l'enverrai par morceaux
> >> >>>> (pour renseignement c'est un fichier texte de 162 caractères par
> >> >>>> lignes.
> >> >>> sur
> >> >>>> un fichier de 32712 lignes, this.data en contient 64642 au moment

du
> >> >>> Alines)
> >> >>>> Y a t'il un moyen avec vfpwinsock pour détecter si le fichier est

> > trop
> >> >>>> volumineux pour l'envoi?
> >> >>>>
> >> >>>> Cordialement
> >> >>>>
> >> >>>> Karine
> >> >>>>
> >> >>>>
> >> >>>
> >> >>>
> >> >>
> >> >
> >> >
> >>

> >
> >

>



Réponse avec citation
  #11 (permalink)  
Vieux 24/07/2008, 16h20
Francis FAURE \(www.atoutfox.org\)
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

exact
c'est en passant par un fichier temporaire que c'est 1000 fois plus
rapide... étonnant non ?
Il y a moyen de faire mieux ?
Cordialement



"Gregory" <Gregory***nowhere.com> a écrit dans le message de
news:uSOlx%23Z7IHA.1080***TK2MSFTNGP06.phx.gbl...
> Sachant que
>
> (1) un SUBSTR copie le string ENTIER sur le stack a chaque fois
> (2) x = x + 'a' a ete optimise pour faire un append 'en place'
> (3) un access a un tableau est plus lent qu'un acces a une simple variable
>
> Quant a ton exemple, les 3 cas: pas beaucoup de difference
>
> MAIS, il faut mesurer. Ainsi j'ai
> (1) change (fois 5) : lsSource = REPLICATE("1234567890", 30*1024*5)
> (2) Ajoute un quatrieme cas, avec un fichier Out + a la fin FileToStr(Out)
>
> Resultats
> (1) 78.9 sec (access tableau apparemment x = x +'a' pas optimise
> (2) 5.039 sec (access tableau)
> (3) 0.749 ( x = x +'a' optimise + pas de SUBSTR)
> (4) 0.374 (pas de x = x + 'a')
>
>
>
>
> --
> Gregory
> __
> "Francis FAURE (www.atoutfox.org)" <francis.faure[***]dord.com> wrote in
> message news:eJW21ZZ7IHA.1952***TK2MSFTNGP02.phx.gbl...
> > Gregory
> >
> > Exemple de code a optimizer :
> >
> > En première lecture, d'après toi, qu'est-ce qui est le plus rapide ?
> > Comment mieux faire ?
> >
> >
> >
> > *-----------------------------------------
> > *
> > * but insérer CRLF tous les 60 Caractères
> > *
> > * source : 1 chaine (lsSource)
> > * Destination : un tableau (lTab[1,2])
> > *-----------------------------------------
> > CLEAR
> > SET SAFETY off
> > #define CRLF CHR(13)+CHR(10)
> > lsSource = REPLICATE("1234567890", 30*1024)
> > DIMENSION lTab[1,2]
> >
> > *-----------------------------------------
> > * Syntaxe 1
> > liStart= SECONDS()
> > lTab[1,2] = ""
> > FOR i = 1 TO LEN(lsSource) STEP 76
> > lTab[1,2] = lTab[1,2] + SUBSTR(lsSource,i,76) + CRLF
> > NEXT
> > ? seconds() - liStart
> >
> >
> > *-----------------------------------------
> > * Syntaxe 2
> > liStart= SECONDS()
> > lsDestination =""
> > FOR i = 1 TO LEN(lsSource) STEP 76
> > lsDestination = lsDestination + SUBSTR(lsSource,i,76) + CRLF
> > NEXT
> > lTab[1,2] = lsDestination
> > ? seconds() - liStart
> >
> > *-----------------------------------------
> > * Syntaxe 3
> > liStart= SECONDS()
> > lsDestination =""
> > v_tmp = "c:\temp\test.txt"
> > =strtofile(lsSource, v_tmp, .F.)
> > v_f = Fopen(v_tmp)
> > do while not Feof(v_f)
> > lsDestination = lsDestination + Fgets(v_f, 76) + CRLF
> > enddo
> > =Fclose(v_f)
> > erase (v_tmp)
> > lTab[1,2] = lsDestination
> > ? seconds() - liStart
> >
> >

>



Réponse avec citation
  #12 (permalink)  
Vieux 25/07/2008, 08h27
Karine
 
Messages: n/a
Par défaut Re: Winsock - taille des pièces jointes

Bonjour,

Je peux biensur tester les corrections apportées avec vfp8 et mes exemples
de fichiers texte. Le seul truc c'est que je suis en vacances ce soir.
Retour le 18/08.

Cordialement

Karine



"Gregory" <Gregory***nowhere.com> a écrit dans le message de news:
%23v22bJY7IHA.5024***TK2MSFTNGP03.phx.gbl...
> Bon Francis,
>
> J'ai bu le cafe que tu m'as offert - c'est gentil - merci
>
> Je fais ton test (4*1024) : 11 sec
> Je fais mon test: 0.1 sec
>
> local obj, i
> obj = createobject('truc')
>
> for i=1 to 4*1024
> obj.Property = m.obj.Property + REPLICATE("1",1024)
> next
>
>
>
> Si tu m'envoies ton winsock - avec ton bug corrige !- (je crois que j'ai
> la version 1.16), je vais integrer mon truc dedans
>
> je ne toucherai qu'a this.DATA - je me perds dans ce grand spaghetti
>
> Karine:
>
> Es-tu prete a faire le test enVFP8 ? Je n'ai que la 9
> --
> Gregory
> __
> "Francis Faure" <francis.faure_***_dord.com> wrote in message
> news:uTNGA9O7IHA.3692***TK2MSFTNGP05.phx.gbl...
>> Gregory,
>>
>> Hum,
>> je suis d'accord dans le principe et conceptuellement dans tes propos...
>> Mais....
>>
>> pour répondre
>> je ne passe justement PAS par une propriété d'une classe (expres)
>>
>> Car le probleme est justement la limitation des propriétés de VFP qui
>> ne support pas plus de 16 Méga
>>
>> si tu veux t'en convaincre : essayes le code suivant :
>> o=CREATEOBJECT("truc")
>> o.Property = ""
>> FOR i=1 TO 17*1024
>> ? i
>> o.Property = o.Property + REPLICATE("1",1024)
>> next
>> DEFINE CLASS truc as Custom
>> Property = ""
>> ENDDEFINE
>>
>> prends un café,
>> mais ça va peter à la tronche lorsque i = 16384
>>
>>
>> le probleme actuel de vfp winsock /send mail est donc bien que j'utilise
>> des propriétés et subit la limitation de 16Mo
>>
>> Pascal m'a donné une idée et la solution pour contourner (passer par des
>> variables),
>> mais j'avoue ne pas avoir pris le temps de tout re implementer en
>> variables
>> car je me dit :
>> d'une part : qu'un mail de 16Mo .... c'est une erreur de
>> conception... a mon humble avis...
>> d'autre part : la majorité des opérateurs internet de laisse pas
>> passer un mail d'un tel taille (en France)
>>
>> ceci dit je travail sur la 1.18 de vfp_winsock elle supportera + que 16mo
>> (pour le principe) mais je vais devoir passer par variables et fichiers
>> temporaires,
>> enfin : je sais qua'vant qu'il y a des trucs a optimiser en terme de
>> temps de traitement
>>
>> Je vais peut être rajouter une propriété "Zip_Attachment" pour zipper
>> avant d"expédier
>>
>>
>> si tu as un peu de temps : je peux te donner des exemples si tu veux
>> m'aider a optimiser et contribuer ?
>>
>> Cordialement
>> Francis
>>
>>
>>
>>
>> "Gregory" <Gregory***nowhere.com> a écrit dans le message de news:
>> ORSFLNO7IHA.3976***TK2MSFTNGP06.phx.gbl...
>>> Francis,
>>>
>>> Au sujet de Winsock - alines - suggestion
>>>
>>> (1) Au lieu d'etre un chaine de car, j'utiliserais un objet collection
>>>
>>> (2) this.data = this.data + .... + CRLF
>>> this.data.Add(...) && pas de CRLF
>>>
>>> (3) l'envoi, au lieu de alines, tu parcours la collection, par item, tu
>>> envoies le contenu + CRLF
>>>
>>> Comme cela, je crois que le probleme de alines() sera disparu
>>> --
>>> Gregory
>>> __
>>> "Francis FAURE (www.atoutfox.org)" <francis.faure[***]dord.com> wrote in
>>> message news:%23LZleqK7IHA.2336***TK2MSFTNGP03.phx.gbl...
>>>> Avec quelle version de VFP ?
>>>> Avec quelle version de VFP winsock ?
>>>> Cordialement
>>>> Francis
>>>>
>>>>
>>>>
>>>>
>>>> "Karine" <info_sansspam***sansspam-soft-lan.com> a écrit dans le message
>>>> de
>>>> news:OCIxp2J7IHA.1080***TK2MSFTNGP06.phx.gbl...
>>>>> Bonjour,
>>>>>
>>>>> Chaque mois je dois transmettre un fichier texte par mail pour cela
>>>>> j'utilise vfpwinsock.
>>>>> Cela fonctionne parfaitement jusqu'a une certaine taille de fichier,
>>>>> puis
>>>>> selon la taille j'ai les erreurs suivantes:
>>>>> -> Dans winsock_sendmail Alines déclenche une erreur car j'ai plus de
>>>> 65000
>>>>> lignes (erreur 31 je crois)
>>>>> -> Dans winsock_sendmail erreur 1234 indices hors limite
>>>>> -> Sur les très gros fichiers Erreur 1903 (chaine trop longue) dans
>>>>> Send
>>>>> c'est lors de la création de This.data
>>>>> Je renseigne dans la classe smtp_host,from, from name,subject et
>>>> attachment.
>>>>> Pour l'instant je vais limité mon fichier texte à 20000 lignes et
>>>> lorsqu'il
>>>>> sera plus volumineux je l'enverrai par morceaux
>>>>> (pour renseignement c'est un fichier texte de 162 caractères par
>>>>> lignes.
>>>> sur
>>>>> un fichier de 32712 lignes, this.data en contient 64642 au moment du
>>>> Alines)
>>>>> Y a t'il un moyen avec vfpwinsock pour détecter si le fichier est trop
>>>>> volumineux pour l'envoi?
>>>>>
>>>>> Cordialement
>>>>>
>>>>> Karine
>>>>>
>>>>>
>>>>
>>>>
>>>

>>
>>

>



Réponse avec citation
 
Réponse
Tags: , , ,



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires

Discussion Auteur Forum Réponses Dernier message
Re: Winsock 1.17 Francis FAURE \(www.atoutfox.org\) Newsgroup microsoft.public.fr.fox 2 24/07/2008 21h44
Re: Winsock Francis FAURE \(www.atoutfox.org\) Newsgroup microsoft.public.fr.fox 2 23/07/2008 13h05
FTP avec Winsock christ Newsgroup microsoft.public.fr.vb 3 22/05/2008 22h41
Re: winsock - créer un messenger Paul Bacelar Newsgroup microsoft.public.fr.dotnet.vc 2 18/01/2006 22h13


Fuseau horaire GMT. Il est actuellement 06h02.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,61463 seconds with 11 queries