par
owenho » 23 juil. 2012, 20:23
Bonjour à tous,
bon j'ai un fichier texte, qui contient les données comme suit:
Code : Tout sélectionner
N=0,x=23928392,y=2091039,zone=1
N=0,x=59091212,y=6766566,zone=1
N=0,x=23928392,y=2091039,zone=1
N=1,x=45450909,y=6766566,zone=1
N=1,x=23928392,y=2091039,zone=1
N=1,x=45450909,y=6766566,zone=1
N=2,x=23928392,y=2091039,zone=2
N=2,x=23928192,y=6766566,zone=2
N=2,x=23928392,y=2091039,zone=2
N=3,x=23928392,y=2091039,zone=2
N=3,x=23928192,y=6766566,zone=2
N=3,x=23928392,y=2091039,zone=2
aprés que je crée les variable pour stocker ce contenu comme ça:
Code : Tout sélectionner
$lines = file('C:\file.txt', FILE_IGNORE_NEW_LINES);
$data = array();
for($i = 0, $c = count($lines); $i < $c; $i++) {
$line = explode(',', rtrim($lines[$i]));
if(strlen(rtrim($lines[$i])) != 0) {
$n = explode('=', $line[0]);
$n = $n[1];
$data[$n][] = $lines[$i];
$x = explode('=', $line[1]);
$x = $x[1];
$y = explode('=', $line[2]);
$y = $y[1];
$z = explode('=', $line[3]);
$z = $z[1];
echo 'N='.$n.',x='.$x.',y='.$y.',zone='.$z.'<br>';
}
le contenu s'affiche comme suit:
Code : Tout sélectionner
N=0,x=23928392,y=2091039,zone=1
N=0,x=59091212,y=6766566,zone=1
N=0,x=23928392,y=2091039,zone=1
N=1,x=45450909,y=6766566,zone=1
N=1,x=23928392,y=2091039,zone=1
N=1,x=45450909,y=6766566,zone=1
N=2,x=23928392,y=2091039,zone=2
N=2,x=23928192,y=6766566,zone=2
N=2,x=23928392,y=2091039,zone=2
N=3,x=23928392,y=2091039,zone=2
N=3,x=23928192,y=6766566,zone=2
N=3,x=23928392,y=2091039,zone=2
ok, maintenant je voudrais créer deux chaines(chaine1 pour zone1 et chaine2 pour zone2) qui ont la forme suivant:
((x y,x y,x y),(x y,x y)), bon pour mon cas:
Code : Tout sélectionner
chaine1=((23928392 2091039,59091212 6766566,23928392 2091039), // pour N=0
(45450909 6766566,23928392 2091039,45450909 6766566)) //pour N=1
chaine2=((23928392 2091039,23928192 6766566,23928392 2091039), // pour N=2
(23928392 2091039,23928192 6766566,23928392 2091039)) // pour N=3
chaine1 contient les lignes qui appartient au zone1.et pour chaque N représente un (x y,x y,x y.. )
Bonjour à tous,
bon j'ai un fichier texte, qui contient les données comme suit:
[code]
N=0,x=23928392,y=2091039,zone=1
N=0,x=59091212,y=6766566,zone=1
N=0,x=23928392,y=2091039,zone=1
N=1,x=45450909,y=6766566,zone=1
N=1,x=23928392,y=2091039,zone=1
N=1,x=45450909,y=6766566,zone=1
N=2,x=23928392,y=2091039,zone=2
N=2,x=23928192,y=6766566,zone=2
N=2,x=23928392,y=2091039,zone=2
N=3,x=23928392,y=2091039,zone=2
N=3,x=23928192,y=6766566,zone=2
N=3,x=23928392,y=2091039,zone=2[/code]
aprés que je crée les variable pour stocker ce contenu comme ça:
[code]
$lines = file('C:\file.txt', FILE_IGNORE_NEW_LINES);
$data = array();
for($i = 0, $c = count($lines); $i < $c; $i++) {
$line = explode(',', rtrim($lines[$i]));
if(strlen(rtrim($lines[$i])) != 0) {
$n = explode('=', $line[0]);
$n = $n[1];
$data[$n][] = $lines[$i];
$x = explode('=', $line[1]);
$x = $x[1];
$y = explode('=', $line[2]);
$y = $y[1];
$z = explode('=', $line[3]);
$z = $z[1];
echo 'N='.$n.',x='.$x.',y='.$y.',zone='.$z.'<br>';
}
[/code]
le contenu s'affiche comme suit:
[code]N=0,x=23928392,y=2091039,zone=1
N=0,x=59091212,y=6766566,zone=1
N=0,x=23928392,y=2091039,zone=1
N=1,x=45450909,y=6766566,zone=1
N=1,x=23928392,y=2091039,zone=1
N=1,x=45450909,y=6766566,zone=1
N=2,x=23928392,y=2091039,zone=2
N=2,x=23928192,y=6766566,zone=2
N=2,x=23928392,y=2091039,zone=2
N=3,x=23928392,y=2091039,zone=2
N=3,x=23928192,y=6766566,zone=2
N=3,x=23928392,y=2091039,zone=2[/code]
ok, maintenant je voudrais créer deux chaines(chaine1 pour zone1 et chaine2 pour zone2) qui ont la forme suivant:
((x y,x y,x y),(x y,x y)), bon pour mon cas:
[code]chaine1=((23928392 2091039,59091212 6766566,23928392 2091039), // pour N=0
(45450909 6766566,23928392 2091039,45450909 6766566)) //pour N=1
chaine2=((23928392 2091039,23928192 6766566,23928392 2091039), // pour N=2
(23928392 2091039,23928192 6766566,23928392 2091039)) // pour N=3[/code]
chaine1 contient les lignes qui appartient au zone1.et pour chaque N représente un (x y,x y,x y.. )