[ASP] Lecture inachevée d'un fichier

Lecture inachevée d'un fichier [ASP] - ASP - Programmation

Marsh Posté le 30-12-2004 à 08:38:24    

Bonjour
 
Pb d'ASP donc : je souhaite lire un fichier txt de données et insérer le tout dans un BD SQL Server (je lis une ligne, j'en fais une requête insert, j'execute, je passe à la ligne suivante, etc...).
 
J'utilise donc la méthode readline d'ASP. Ca marche très bien pour la plupart des fichiers, mais certains sont récalcitrants et ne revoient qu'une partie de la ligne. Le readline bloque sur un caractère espace mystérieux, ce qui m'empêche bien sûr de faire mes requêtes... J'ai testé le readall également qui ne me renvoit que le bout de la première ligne.
 
Enfin voilà, si vous êtes déjà tombé sur un pb similaire, je suis preneur de toute idée... :)


---------------
Hattrick : Les aléas #586351 - Stats HFR @Alltid
Reply

Marsh Posté le 30-12-2004 à 08:38:24   

Reply

Marsh Posté le 30-12-2004 à 08:56:25    

Bonjour,
 
Avec quelle méthode ouvre tu ton fichier texte ?

Reply

Marsh Posté le 30-12-2004 à 09:46:20    

Code :
  1. Dim fs, var, i
  2. var = Request.QueryString("path" )
  3. Set rs = Server.CreateObject("ADODB.recordset" )
  4. set fs = CreateObject("Scripting.FileSystemObject" )
  5. nRep = Server.MapPath("." ) & "\todo\"
  6. i = 0
  7. if  fs.FileExists(var) then
  8.     set MonFichier = fs.OpenTextFile(var,1,false)
  9. While not MonFichier.atEndOfStream
  10.  'dès ici ça chie
  11.  sqlval=MonFichier.Readline
  12.  sql = "INSERT INTO (...) values "
  13.         'transformation en requete
  14.         sqlval = left(sqlval,len(sqlval)-1)
  15.  sqlval = replace(sqlval,"'"," " )
  16.  sqlval = replace(sqlval," ;",";" )
  17.  sqlval = replace(sqlval,";","','" )
  18.         sqlval = "('" & sqlval & "')"
  19.         sql = sql + sqlval
  20.  rs.Open sql,db,3
  21.  i = i + 1
  22. wend
  23. end if


---------------
Hattrick : Les aléas #586351 - Stats HFR @Alltid
Reply

Marsh Posté le 30-12-2004 à 10:00:21    

L'ouverture du fichier importé embêtant avec Hex Editor me dit que l'"espace" en question est un caractère "00", alors qu'un espace classique est "20", et le saut de ligne "0a".
 
Je vais essayer de me renseigner. Bizarrement la lecture du fichier en PHP se fait très bien. Malheureusement c'est un serveur ASP...


---------------
Hattrick : Les aléas #586351 - Stats HFR @Alltid
Reply

Marsh Posté le 30-12-2004 à 10:23:53    

Hastings a écrit :

L'ouverture du fichier importé embêtant avec Hex Editor me dit que l'"espace" en question est un caractère "00", alors qu'un espace classique est "20", et le saut de ligne "0a".
 
Je vais essayer de me renseigner. Bizarrement la lecture du fichier en PHP se fait très bien. Malheureusement c'est un serveur ASP...


 
ça correspond pas à un caractère fin de fichier ça "00" ? En tout cas, ça semble pas être un fichier text classique. Ou bien c'est codé en unicode ?


Message édité par DVDAI le 30-12-2004 à 10:24:15
Reply

Marsh Posté le 30-12-2004 à 10:42:53    

Je ne sais pas, mais je n'ai pas ce caractère en fin de fichier. Ce "00" n'apparait que là, au milieu de chacune des lignes...


---------------
Hattrick : Les aléas #586351 - Stats HFR @Alltid
Reply

Marsh Posté le 30-12-2004 à 10:48:48    

Peut être devrais tu lire le fichier en mode binaire et non en mode texte ? ça serait plus fiable.

Reply

Marsh Posté le 30-12-2004 à 10:57:08    

Et comment ça se fait ça ? :)  
La méthode OpenTextFile permet l'ouverture en Unicode (c'est ASCII par défaut), j'ai testé résultat ça plante (temps limite dépassé...)
 
Je vois pas trop comment arranger ça là... Y'a moyen d'appliquer un replace sur un fichier texte sans passer par readline ?


Message édité par hastings le 30-12-2004 à 10:57:38

---------------
Hattrick : Les aléas #586351 - Stats HFR @Alltid
Reply

Marsh Posté le 30-12-2004 à 16:04:07    

essayes avec un ReadAll pour tester

Reply

Marsh Posté le 30-12-2004 à 16:21:57    

readAll ne me renvoie que le bout de la première ligne... Comme un readLine.


---------------
Hattrick : Les aléas #586351 - Stats HFR @Alltid
Reply

Marsh Posté le 30-12-2004 à 16:21:57   

Reply

Marsh Posté le 30-12-2004 à 17:39:25    

Hastings a écrit :

readAll ne me renvoie que le bout de la première ligne... Comme un readLine.


Peux tu m'envoyer ce fameux fichier ?
 
Je vais jeter un coup d'oeil la dessus. Bizarre c'histoire  :sweat:

Reply

Marsh Posté le 30-12-2004 à 19:18:57    

Demain alors. :D Là je suis plus au bureau.


---------------
Hattrick : Les aléas #586351 - Stats HFR @Alltid
Reply

Marsh Posté le 30-12-2004 à 20:56:15    

honte à toi  :whistle:

Reply

Marsh Posté le 31-12-2004 à 11:12:39    

lol :D Je t'envoie le fichier texte qui saoule.
 
Mais sinon te prend pas la tête, je suis en train de refaire la page en PHP (super pratique : on stocke le fichier sur le serveur asp, on le lit et on fabrique les requetes sur le serveur php, et on execute ces dernières sur la bd qui se trouve sur le serveur asp).


---------------
Hattrick : Les aléas #586351 - Stats HFR @Alltid
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed