/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
lave flere linier i fil til én linie
Fra : Niels Bachmann


Dato : 26-07-04 14:49

Hej gruppe

I et script har jeg brug for at læse en større textfil , en linie ad gangen,
mens jeg leder efter et bestemt streng.
Hver gang strengen bliver fundet, skal linien + de 6 næste linier skrives
til en variabel, men uden linieskift.
(eller laves om til én linie om man vil)

Nogen der har et løsnings forslag?

MVH/ Niels Bachmann




 
 
Christian Joergensen (26-07-2004)
Kommentar
Fra : Christian Joergensen


Dato : 26-07-04 15:50

On Mon, 26 Jul 2004 15:49:03 +0200, Niels Bachmann wrote:

> I et script har jeg brug for at læse en større textfil , en linie ad gangen,
> mens jeg leder efter et bestemt streng.
> Hver gang strengen bliver fundet, skal linien + de 6 næste linier skrives
> til en variabel, men uden linieskift.
> (eller laves om til én linie om man vil)

> Nogen der har et løsnings forslag?

Det burde være sådan lige ud af landevejen. Hvor er det præcist du har
problemer?

Læs gerne:

o http://php.net/while
o http://php.net/fopen
o http://php.net/fgets
o http://php.net/feof
o http://php.net/trim

--
Christian Jørgensen | Never make any mistaeks.
http://www.razor.dk |


Niels Bachmann (26-07-2004)
Kommentar
Fra : Niels Bachmann


Dato : 26-07-04 16:53

[snip]
> Læs gerne:
>
> o http://php.net/while
> o http://php.net/fopen
> o http://php.net/fgets
> o http://php.net/feof
> o http://php.net/trim
>
> --
> Christian Jørgensen | Never make any mistaeks.
> http://www.razor.dk |

Kender dem godt, men er åbenbart gået sukkerkold

Niels



Jimmy (26-07-2004)
Kommentar
Fra : Jimmy


Dato : 26-07-04 17:47


"Niels Bachmann" <niels@_NOSPAM_bachmann.nu> wrote in message
news:ce39d9$j3d$1@news.cybercity.dk...
> [snip]
> > Læs gerne:
> >
> > o http://php.net/while
> > o http://php.net/fopen
> > o http://php.net/fgets
> > o http://php.net/feof
> > o http://php.net/trim
> >
> > --
> > Christian Jørgensen | Never make any mistaeks.
> > http://www.razor.dk |
>
> Kender dem godt, men er åbenbart gået sukkerkold

Hvor er du gået i stå?

Mvh
Jimmy



Niels Bachmann (26-07-2004)
Kommentar
Fra : Niels Bachmann


Dato : 26-07-04 17:51


"Jimmy" <nyhedsgruppe2001@SPAM.yahoo.co.uk> skrev i en meddelelse
news:41053485$0$35884$14726298@news.sunsite.dk...
> Hvor er du gået i stå?
>
> Mvh
> Jimmy
Sidder og roder med denn klumpede kode

$fcontents = file("$path/$file");
while (list ($line_num, $line) = each ($fcontents)) {
$line = utf8_decode($line);

if ((ereg("$reg", $line)) || ($readme == "ok")){
$newline = rtrim($line);
echo "$newline";
$readme = "ok";
$count++;

if ( $count == "8") {
echo "\n";
unset($readme);
unset($count);
}
}

MVH/ Niels



Christian Joergensen (26-07-2004)
Kommentar
Fra : Christian Joergensen


Dato : 26-07-04 21:12

On Mon, 26 Jul 2004 18:51:12 +0200, Niels Bachmann wrote:

[...]

Jeg ville nok bruge en lidt anden tilgangsvinkel:

<?php

$match = 'test'; // Teksten der søges efter
$output = '';

$linePointer = 0; // Pege-variabel til linjenummer

$path = '/home/razor';
$file = 'test.txt';

$fileContent = file($path.'/'.$file);
$fileLines = sizeOf($fileContent);

while ($linePointer < $fileLines) {

if (strstr($fileContent[$linePointer], $match)) {

for ($i = $linePointer; $i < $linePointer + 6; $i++) {
$output .= trim($fileContent[$i]);
}

$linePointer = $i;

} else {

$linePointer++;

}

}

print $output;

?>

Scriptet er vejledende og uafprøvet; faktisk aner jeg ikke om det virker
- der tages forbehold for tyrkfejl

--
Christian Jørgensen | The knack of flying is learning how to throw
http://www.razor.dk | yourself at the ground and miss.


Niels Bachmann (26-07-2004)
Kommentar
Fra : Niels Bachmann


Dato : 26-07-04 18:29

Det her giver ihvertfald det rigtige resultat, selvom koden nok ku' være
skrevet smartere.

while (list ($line_num, $line) = each ($fcontents)) {
$line = utf8_decode($line);

//// SÆT LINIER SAMMEN ////

if ((ereg("$reg", $line)) || ($readme == "ok")){
$newline = ltrim($line);
$newline = rtrim($newline);
$wholeline = "".$wholeline."".$newline."";

$readme = "ok";
$count++;

if ( $count == "9") {
echo "$wholeline\n"; // testoutput
unset($wholeline);
unset($readme);
unset($count);
}
}

Niels



Bent Stigsen (27-07-2004)
Kommentar
Fra : Bent Stigsen


Dato : 27-07-04 01:48

Niels Bachmann wrote:
> Hej gruppe
>
> I et script har jeg brug for at læse en større textfil , en linie ad gangen,
> mens jeg leder efter et bestemt streng.
> Hver gang strengen bliver fundet, skal linien + de 6 næste linier skrives
> til en variabel, men uden linieskift.
> (eller laves om til én linie om man vil)
>
> Nogen der har et løsnings forslag?
>
> MVH/ Niels Bachmann

Har du awk?
Godt nok ikke php, men den kan vel fyres i en system. :0)

awk '/en bestemt streng/ { for (i=0; i<6; i++) { printf("%s", $0);
getline; }; print; }' StorTekst.fil


/Bent

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste