Problème conversion champ en longueur fixe

Eléphanteau du PHP | 30 Messages

12 mars 2012, 19:39

C'est vrai que je ne trouve pas cela très logique, mais je dois en effet fournir un fichier txt sans aucun espace ou symbole, seul la longueur des champs détermine de quoi il s'agit (d'où l'importance du sprintf!).

Bon, ce qui va être sympa, c'est que je vais devoir faire le "retour".... je vais recevoir mon fichier txt qui aura été "traité" et modifié, et il faudra que je l'injecte dans la table ;-)

J'en profite :-)
Quelle serait la fonction inverse?
Une idée?

Bonne soirée et encore merci pour vos lumières

Mammouth du PHP | 2278 Messages

12 mars 2012, 21:39

Avant toute réponse, il est urgent de voir le fichier modifié retourné.
S'il est, absurdement, sans délimiteur, il est évident que l'interlocuteur possède un moyen de le coder/décoder, et on se demande bien par quel sadisme il pourrait refuser de le communiquer.
Sinon des

Code : Tout sélectionner

substr
bien paramétrés devraient suffire à saucissoner la chose, en n'oubliant pas que cet imbécile de PHP réussit l'exploit de rendre le nombre exact de caractères par la fonction

Code : Tout sélectionner

strlen()
, et de démarrer à 0 son

Code : Tout sélectionner

substr(
), sachant que là 0 est le premier caractère, et que, pendant qu'on y est, au lieu de disposer d'un false et d'un true qui ne risquent pas de se confondre avec d'autres valeurs, il a un false qui vaut 0; donc

Code : Tout sélectionner

strpos
retourne un "vrai" 0 quand la chaîne cherchée se trouve au début de la chaîne explorée, et un 0 booléen quand elle n'est pas trouvée.
(note à l'adresse des experts : je connais !== et ===)
La lecture de Jarry est moins troublante et plus cohérente.
Php n'est pas le seul à être zéroiste; ça montre simplement que tous ces langages ignorent en réalité les besoins de traitement de chaînes de caractères.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 30 Messages

13 mars 2012, 10:56

:-) Merci, je testerai tout cela dès que je recevrai le fichier!

Mais ce n'est pas par sadisme que je ne reçois pas les infos de l'interlocuteur, c'est juste qu'il travail en cobol :-(
Donc, j'suis pas très sûr que cela me servirait à grand chose ;-)

A tout bientôt

Mammouth du PHP | 2278 Messages

13 mars 2012, 11:54

Oui, on comprend mieux, car Cobol gère des fichiers à longueur d'enregistrement fixe du genre :
nom : longueur 20 caractères...
age : 3 caractères
ce qui fait que pour eux, lire tes productions est un jeu d'enfant.
amuse-toi à regarder à quoi tu échappes:
http://www.csis.ul.ie/cobol/examples/Se ... QWRITE.htm
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD