Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Salut à tous,
je sais qu'il y a des masses parmis nous en FTP , donc voici mon humble requête :
pour envoyer des fichiers sur un serveur ftp j'utilise l'objet n_wininet du web :
n_wininet.of_putfile( source, destination, true ) // true = ASCII mode
qui appelle l'API wininet :
FtpPutFile(iul_session, as_source, as_target, FTP_TRANSFER_TYPE_ASCII, 0)
Function boolean FtpPutFile ( &
ulong hConnect, &
string lpszLocalFile, &
string lpszNewRemoteFile, &
ulong dwFlags, &
ulong dwContext &
) Library "wininet.dll" Alias For "FtpPutFileW"
FTP_TRANSFER_TYPE_ASCII = 1
Copy the file using ASCII transfer. Copying from a Windows system to a Unix system carriage-return-line-feed pairs are replaced by carriage-return, and vice versa when copying to Windows from a Unix system.
Les specs pour les retours à la ligne :
LF = char(10) = Linefeed
CR = char(13) = Carriage Return
Unix = LF
Mac = CR
Windows = CR + LF
Mes fichiers ont bien un CR + LF à la fin de chaque ligne avec l'envoi. Lorsque j'utilise u_wininet pour les envoyer il ne reste plus que LF...
J'ai testé un autre serveur (free) avec n_wininet : même symptome. J'ai aussi testé le transfert avec FTP.EXE du Dos ou un client FTP classique : le fichier conserve le CR+LF...
Donc je pense que c'est bien du côté de wininet qui faut chercher
Des idées ?
Hors ligne
si tu ne veux pas que tes cr-lf disparaissent, utilise le mode de transfert "binaire" plutot que "ascii"
ton serveur destinataire est un serveur unix, non ?
en tout cas, si je ne me trompe pas, le fonctionnement normal d'un ftp de windows -> unix en mode ascii est de remplacer
les cr-lf par des lf
voilà !
Hors ligne
jdobosz a écrit:
si tu ne veux pas que tes cr-lf disparaissent, utilise le mode de transfert "binaire" plutot que "ascii"
bingo ! je viens d'essayer c'était ça
ce qui est bizarre c'est qu'avec un client FTP (filezilla), même en forçant le mode ascii, les cr ne disparaissent pas
Hors ligne