Les Snippets

Connexion

Récupérer une partie d'un fichier (ligne n à x)

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 06/11/2008 17:16:46 et initié par PCPT [Liste]
Date de mise à jour : 19/03/2009 19:33:23
Vue : 21692
Catégorie(s) : Fichier / Disque, Chaîne de caractères
Langage sélectionné : PHP 5
Langages dispo pour ce code :
- VB6, VBA
- VB 2005
- Delphi 5
- VB 2005, VB 2008, VB.NET 1.x
- C# 1.x, C# 2.x, C# 3.x
- PHP 4, PHP 5
- Voir tous les langages pour ce code snippet



Langage : PHP 4 , PHP 5
Date ajout : 15/02/2009
Posté par wererabbit [Liste]
DateMAJ : 19/03/2009
/*
*@param string $file Chemin du fichier texte
*@param int $startLine Première ligne du texte que l'ont veut retourner. Le fichier commence à la ligne 0
*@param int $enLine Dernière ligne du texte que l'ont veut retourner
*@return string Une chaîne de caractère comprenant les lignes de $startLine à $endLine du fichier texte
*/
GetFilePart($file, $startLine, $endLine)
{
    if($endLine< 0) {
          return false;
      }
    $return = '';
    $files = file($file);
    if($startLine < 0) {
        $startLine = 0;
    }
    $iCpt = count($file);
    if($iCpt < $endLine) {
        $endLine = $iCpt;
    }
    for($i = $startLine; $i <= $endLine; $i++)
    {
        //if($i < count($files) && $i >= 0)
            $return .= $files[$i];
    }
    
    return $return;
}
//Exemple : 
//retourne les 10 premières lignes du fichier
$text = GetFilePart('file.txt',  0, 10);
Remarque :
Correction et optimisation par Malalam : inutile d'appeler le count() DANS la boucle, il sera alors exécuté autant de fois qu'on boucle alors que le nombre de lignes contenues dans le fichier ne bouge pas.
Si $endLine est négatif, on renvoie false, ça ne tient pas debout d'avoir un entier négatif ici (où on balance une exception). Si $startLine est négatif, on le fixe à 0 histoire d'essayer quand même.
Sinon, on peut utiliser array_splice(), plus simplement, mais moins performant qu'une boucle.

Snippets en rapport avec : Fichier, Lignes, Récupérer, Partie, Écart



Codes sources en rapport avec : Fichier, Lignes, Récupérer, Partie, Écart

{PHP} RÉCUPÉRER LE TYPE D'UN FICHIER (3 FONCTIONS DIFFÉRENTES)
Bonjour à tous, La plupart des gens pense que récupérer l'extension d'un fichier envoyé par form...

{Python} FONCTION COMPTER LE NOMBRE DE LIGNE
Bonjour, ma première fonction que je poste ... Pour les gros débutant (dont je fais parti) je pense ...

{Visual Basic, VB6, VB.NET, VB 2005} GETNAMES : RÉCUPÈRE ET ÉCRIT TOUS LES NOMS DE FICHIERS D'UN DOSSIER
J'ai fait ce petit programme tout simple, qui aurait pu être créé par n'importe quel débutant, car j...

{C / C++ / C++.NET} NOMBRE DE LIGNES ET DE COLONNES D'UN FICHIER
Voici ma première source, qui permet de trouver le nombre de colonnes et de lignes d'un fichier avec...

{Visual Basic, VB6, VB.NET, VB 2005} NTFS RECOVER : RÉCUPÉRER LES FICHIERS EFFACÉS D'UNE PARTITION NTFS
Ce code permet de récupérer les fichiers effacés de vos partitions NTFS. Pour cela, vous devez avoir...

{Visual Basic, VB6, VB.NET, VB 2005} SCRIPT EN VBS QUI DÉCOUPE UN FICHIER EN PLUSIEURS FICHIERS DE X LIGNES.
Ce script permet de découper un fichier en plusieurs fichiers de x lignes. Je l'utilise assez souve...

{Visual Basic, VB6, VB.NET, VB 2005} SOMMES DES LIGNES ET POLYLIGNES
Ce modules permet de réaliser la somme des polylignes et lignes sélectionnées dans Autocad (version ...

{PHP} GESTION DE FICHIERS
Objet permettant de créer et gérer un fichier : ajout/modification/retrait d'éléments/remise à zéro ...

{JAVA / J2EE} EXEMPLE DE MANIPULATION DES FICHIERS TEXTES
Ce code donne trois exemples permettant de manipuler des fichiers textes : création, lecture et modi...

{Visual Basic, VB6, VB.NET, VB 2005} NTFS RECOVER : RÉCUPÉRER LES FICHIERS EFFACÉS D'UNE PARTITION NTFS
Ce code permet de récupérer les fichiers effacés de vos partitions NTFS. Pour cela, vous devez avoir...