no save
Assistance
Achat
News

Forum | webmastering
[PHP][manipulation a l'intérieur d'un chaine]
efflamm, le ven. 19 janv. 2007 à 14:55:10
par contre ceci oui :

-------snip---------

$result5 = str_replace($search, $replace, $result4);
$mystring = $result5;
$findme = ',C';
$pos = strpos($mystring, $findme);
if ($pos === false)
{$result6=$result5;}
else
{
echo'<font color=red size=4>|</font>';
$result6 = ereg_replace("(([^,]*,){7})(.*)", "\\1,\\3", $mystring);
}
$search = ',C';
$replace = '';
$result7 = str_replace($search, $replace, $result6);
$search = ',EUR';
$replace = ',EUR<br>';
$resulthtml = str_replace($search, $replace, $result7);
fputs($FicSortie,$result7, 4096);
echo $resulthtml;
----snip----


le fameux etat pas intéressant dans ma boucle if plus haut , en fait il est interessant puisqu'il permet de dire à la boucle while (!feof()) ne touche pas à cette ligne. C'est ça qui m'échappais!
-----
J'ai des incohérences cependant , mais ça ne concerne plus ce problème précis.Voici :
Soit le morceau de ligne non parsée suivant
( ... ) VT,0YYYYYYY, ( ....)

D'après la moulinette ça devrait devenir

( .... ) VT,411000,YYYYY, ( ....)

Or voici ce qui arrive parfois seulement :

( ... ) VT,411000YYYYY, ( .....)

Cela arrive sur 3-4 lignes par fichier.Il y a surement une explication rationelle à ceci. Une particularité de la ligne, ou peut-etre que les fichiers sont hantés tout simplement.

En tout cas on peux considérerle problème principal comme résolu.Et pour être plus précis, c'est un transfert de comptabilité EBP gestion commerciale v9 vers SAGE v14.
Merci encore !

PS : le code complet, peut-etre servira t'il à quelqu'un ayant le meme problème.

<?php
echo '<br>Initialisation du traitement ...<br>';
echo '<br>Les donnees seront sauvegardees dans : export.txt';
echo '<br>Ouverture des fichiers ...<br>';
echo '<br>Si une ligne ne parait pas conforme , verifiez toujours export.txt<br>';
// verif fichier de donnée
if(file_exists('import.txt'))
{
if(file_exists('export.txt'))
{
unlink('export.txt');
}
$FicEntree = fopen("import.txt", "r");
$FicSortie = fopen("export.txt", "w+");
echo '<br>Generation des lignes d\'ecritures<br>';
while (!feof($FicEntree))
{
$buffer = fgets($FicEntree, 4096);
$search = '"';
$replace = '';
$result0 = str_replace($search, $replace, $buffer);
$search = ',,';
$replace = ',';
$result1 = str_replace($search, $replace, $result0);
$search = 'VT,0';
$replace = 'VT,411000,';
$result2 = str_replace($search, $replace, $result1);
$search = '707100,';
$replace = '707100,,';
$result3 = str_replace($search, $replace, $result2);
$search = '445710,';
$replace = '445710, ,';
$result4 = str_replace($search, $replace, $result3);
$search = '708500,';
$replace = "708500,,";
$result5 = str_replace($search, $replace, $result4);
$mystring = $result5;
$findme = ',C';
$pos = strpos($mystring, $findme);
if ($pos === false)
{$result6=$result5;}
else
{
$result6 = ereg_replace("(([^,]*,){7})(.*)", "\\1,\\3", $mystring);
}
$search = ',C';
$replace = '';
$result7 = str_replace($search, $replace, $result6);
$search = ',EUR';
$replace = ',EUR<br>';
$resulthtml = str_replace($search, $replace, $result7);
fputs($FicSortie,$result7, 4096);
echo $resulthtml;
}
}
else
{
echo '<br><font color=red size=3><center>ERREUR FATALE : Le fichier import.txt n\'existe pas</center></font><br>';
exit;
}
echo 'Generation terminée<br>';
echo 'Fermeture des fichiers<br>';
fclose($FicEntree);
fclose($FicSortie);

?>


Merci encore Xavier ;-)


Précédentefflamm
janv. 07
efflamm
janv. 07
Suivant
REPONSES
efflamm
janv. 07
Reivax962
janv. 07
Reivax962
janv. 07
efflamm
janv. 07
efflamm
janv. 07
efflamm
janv. 07
efflamm
janv. 07
efflamm
janv. 07
Ssylvainsab
janv. 07
Version Web
Réalisé par RedShift
no save