Exercice 10.4 Terminé
Consigne
Même question, mais cette fois le carnet est supposé être trié par ordre alphabétique. L’individu doit donc être inséré au bon endroit dans le fichier. Afficher le fichier du carnet d'adresses
Pseudo code
formatData une FONCTION
firstname, name, tel, mail des CHAINES DE CARACTERES
i un ENTIER
users un TABLEAU
DEBUT
FONCTION formatData(data, length = 20)
RENVOYER strtolower( str_pad( data, length ) )
FIN DE FONCTION
ECRIRE "Entrez un nom"
ECRIRE "Entrez un prénom"
ECRIRE "Entrez un numéro de téléphone"
ECRIRE "Entrez un email"
LIRE firstname
LIRE name
LIRE tel
LIRE mail
concatenated = formatData(firstname)
concatenated += formatData(name)
concatenated += formatData(tel)
concatenated += formatData(mail)
concatenated += EOL
OUVRIR "address.txt" sur 1 en LECTURE
i = 0
users = []
TANT QUE non EOF, 1
users[i] = LIRE 1
i++
FIN TANT QUE
SI (!in_array($concatenated, $users)) ALORS
array_push(users, concatenated)
sort(users)
FERMER FICHIER 1
OUVRIR "address.txt" sur 1 en ECRITURE
POUR CHAQUE users EN user
ECRIRE 1, user
FIN POUR
FERMER FICHIER 1
ECRIRE firstname + " a été ajouté dans le carnet d'adresse."
FIN SI
FIN
Conversion
Pas de code Javascript présent pour cet exercice
Pas de code Jquery présent pour cet exercice
<?php
/**
* @var String $filePath Path of address.txt file
*/
$filePath = "scripts/173/address.txt";
/**
* Format Data
* String should always have the same length and should be in lower case.
* @param $data The string to format.
* @param $length [Optional] Length string should be.
* @return String The formated string.
*/
function formatData(String $data, $length = 20):String {
return strtolower( str_pad($data, $length) );
}
$concatenated = formatData($_POST['firstname']);
$concatenated .= formatData($_POST['name']);
$concatenated .= formatData($_POST['tel']);
$concatenated .= formatData($_POST['mail']);
$concatenated .= PHP_EOL;
// Open file in writing mode, cursor at the end of file.
$fStream = fopen($filePath, "r");
if ($fStream) {
$i = 0;
$users = [];
while (!feof($fStream)) {
$users[$i] = fgets($fStream);
$i++;
}
if (!in_array($concatenated, $users)) {
array_push($users, $concatenated);
sort($users);
fclose($fStream);
$fStream = fopen($filePath, "w");
foreach ($users as $user) {
fwrite($fStream, $user);
}
fclose($fStream);
echo $_POST['firstname'] . " a été ajouté au carnet d'adresses.";
} else {
echo $_POST['firstname'] . " est déjà dans le carnet d'adresses !";
}
}
Choisissez un language:
Entrez les valeurs nécessaires:
Résultat du code
Le résultat s'affichera après l'exécution du code.