/ 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
Kommasepererede filer
Fra : Brian Emilius


Dato : 12-08-03 12:36

Hej NG

Er der nogen der ved hvordan jeg kan lave et script der kan læse
felter i en kommasepereret txt-fil?
Jeg er lidt newbie, så bær venligst over med mig.

Venlig hilsen og på forhånd tak

Brian Emilius

PS: Der er også flere linier i txt-filen, så jeg skal kunne læse
bestemte felter fra bestemte linier... ex:

admin,admin,mail@mail.dk
bent,redaktør,mail@mail.dk
svend,bruger,mail@mail.dk
osv...

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Johan Holst Nielsen (12-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-08-03 12:40

Brian Emilius wrote:
> Er der nogen der ved hvordan jeg kan lave et script der kan læse
> felter i en kommasepereret txt-fil?
> Jeg er lidt newbie, så bær venligst over med mig.


http://php.net/manual/en/function.fgetcsv.php

Tjek funktionen ud og spørg hvis du får problemer :)

mvh
Johan


Brian Emilius (12-08-2003)
Kommentar
Fra : Brian Emilius


Dato : 12-08-03 12:52

>
> Tjek funktionen ud og spørg hvis du får problemer :)
>
> mvh
> Johan
>

Mange tak skal du ha'. Det hjalp ufatteligt meget.
Du skulle vel ikke live have et lignende link så jek gan finde ud af
hvordan jeg skriver til csv-filer?

Venlig hilsen
Brian Emilius

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Johan Holst Nielsen (12-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-08-03 13:15



Brian Emilius wrote:
>>
>>Tjek funktionen ud og spørg hvis du får problemer :)
>>
>>mvh
>>Johan
>>
>
>
> Mange tak skal du ha'. Det hjalp ufatteligt meget.
> Du skulle vel ikke live have et lignende link så jek gan finde ud af
> hvordan jeg skriver til csv-filer?

Måske en kombination af fputs() og eventuelt sprintf()

mvh
Johan


Jesper Brunholm (12-08-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 12-08-03 13:52

Brian Emilius wrote:

> Mange tak skal du ha'. Det hjalp ufatteligt meget.
> Du skulle vel ikke live have et lignende link så jek gan finde ud af
> hvordan jeg skriver til csv-filer?

en csv-fil er sådan set bare en tekstfil med data i kommaseparerede
felter og linieskift for hver ny post som hedder .csv i stedet for .txt.

Dvs at du bare kan oprette filen med fx fwrite <http://dk.php.net/fwrite>

mvh

Jesper Brunholm

--
Phønix - dansk folk-musik i front - <http://www.phonixfolk.dk/>
H.C. Andersen-Centret: <http://www.andersen.sdu.dk/>
Vi har killinger på Garion.dk: <http://garion.dk/>


Johan Holst Nielsen (12-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-08-03 14:23

Jesper Brunholm wrote:
> Brian Emilius wrote:
>
>> Mange tak skal du ha'. Det hjalp ufatteligt meget.
>> Du skulle vel ikke live have et lignende link så jek gan finde ud af
>> hvordan jeg skriver til csv-filer?
>
> en csv-fil er sådan set bare en tekstfil med data i kommaseparerede
> felter og linieskift for hver ny post som hedder .csv i stedet for .txt.

Ved flat-files foretrækker jeg normalt tab sepereret... og der er
sprintf() funktionen uundværlig (mere eller mindre) :)))

mvh
Johan


Jesper Brunholm (12-08-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 12-08-03 15:04

Johan Holst Nielsen wrote:

> Jesper Brunholm wrote:
>> en csv-fil er sådan set bare en tekstfil med data i kommaseparerede
>> felter og linieskift for hver ny post som hedder .csv i stedet for .txt.

> Ved flat-files foretrækker jeg normalt tab sepereret... og der er
> sprintf() funktionen uundværlig (mere eller mindre) :)))

Jeg synes kommaer er lettere at sætte end tabs, men lad blot det ligge

Mit indlæg var på ingen måde en rettelse til dit, det var bare ment som
en hjælp for det tilfældes skyld at hr Emilius ikke anede om han skulle
hen og skrive headers osv

mvh

Jesper Brunholm

--
Phønix - dansk folk-musik i front - <http://www.phonixfolk.dk/>
H.C. Andersen-Centret: <http://www.andersen.sdu.dk/>
Vi har killinger på Garion.dk: <http://garion.dk/>


Johan Holst Nielsen (12-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-08-03 15:16



Jesper Brunholm wrote:
> Johan Holst Nielsen wrote:
>
>> Jesper Brunholm wrote:
>>
>>> en csv-fil er sådan set bare en tekstfil med data i kommaseparerede
>>> felter og linieskift for hver ny post som hedder .csv i stedet for .txt.
>>
>
>> Ved flat-files foretrækker jeg normalt tab sepereret... og der er
>> sprintf() funktionen uundværlig (mere eller mindre) :)))
>
> Jeg synes kommaer er lettere at sætte end tabs, men lad blot det ligge

Smag og behag ;)

> Mit indlæg var på ingen måde en rettelse til dit, det var bare ment som
> en hjælp for det tilfældes skyld at hr Emilius ikke anede om han skulle
> hen og skrive headers osv

Aaah, mit var heller ikke et forsvar :D
Ville blot nævne at tab seperering er en genial ting (imho), så jeg
kunne lige så godt fortælle ham det... fgetcvs har jo masser af
muligheder - man kan også seperere via | eller hvilket tegn man nu
engang vil bruge :D

mvh
Johan


Brian Emilius (12-08-2003)
Kommentar
Fra : Brian Emilius


Dato : 12-08-03 19:42

Johan Holst Nielsen og Jesper Brunholm wrote:
> en hel masse

Ok, pyha... Sikke en diskussion jeg fik sat gang i...

Er der mon en af jer der kan fortælle mig hvordan jeg kan se bestemte kolonner
i bestemte rækker (ex kolonne 4 i række 17)???

Jer bruger et script der ser nogenlunde sådan her ud:

$row = 1;
$handle = fopen ("users/users.csv","r");
while ($data = fgetcsv ($handle, 1000, ",")) {
$num = count ($data);
$row++;
print "$data[1]<br>";
}
fclose ($handle);

Men dette viser kun kolonne 1 i alle rækkerne...

Venlig hilsen
Brian Emilius

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

JMo. (12-08-2003)
Kommentar
Fra : JMo.


Dato : 12-08-03 19:53

Brian Emilius <beskh@hotmail.com> wrote in news:bhbcda$e6d$1@sunsite.dk:

> print "$data[1]<br>";
[snip]
> Men dette viser kun kolonne 1 i alle rækkerne...

1 er kolonne-nummeret.

Brian Emilius (12-08-2003)
Kommentar
Fra : Brian Emilius


Dato : 12-08-03 20:05

JMo. wrote in dk.edb.internet.webdesign.serverside.php:
> Brian Emilius <beskh@hotmail.com> wrote in news:bhbcda$e6d$1@sunsite.dk:
>
> > print "$data[1]<br>";
> [snip]
> > Men dette viser kun kolonne 1 i alle rækkerne...
>
> 1 er kolonne-nummeret.

Der er jeg klar over, men hvordan får jeg så vist en bestemt kolonne i en
bestem række?

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jesper Brunholm (12-08-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 12-08-03 20:15

Brian Emilius wrote:

> Der er jeg klar over, men hvordan får jeg så vist en bestemt kolonne i en
> bestem række?

$row = 1;
$handle = fopen ("users/users.csv","r");
while ($data = fgetcsv ($handle, 1000, ",")) {
$num = count ($data);
$row++;
if($data[1] == 'Det der står i felt 1 i den række du vil ha fat i'){
print "$data[1]<br>";
}
}

Altså: du laver en if-sætning som gør at du kun får printet ud på den
bestemte række...

mvh

Jesper Brunholm



Johan Holst Nielsen (12-08-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-08-03 20:29

Jesper Brunholm wrote:
> Brian Emilius wrote:
>
>> Der er jeg klar over, men hvordan får jeg så vist en bestemt kolonne i en
>> bestem række?
>
>
> $row = 1;
> $handle = fopen ("users/users.csv","r");
> while ($data = fgetcsv ($handle, 1000, ",")) {
> $num = count ($data);
> $row++;
> if($data[1] == 'Det der står i felt 1 i den række du vil ha fat i'){
> print "$data[1]<br>";
> }
> }
>
> Altså: du laver en if-sætning som gør at du kun får printet ud på den
> bestemte række...

Og så kunne det være godt at gribe fat i en
http://dk2.php.net/continue

Så man ikke løber en tekstfil igennem på 1 mill. linier hvis man skal
bruge den første ;)

mvh
Johan


Brian Emilius (13-08-2003)
Kommentar
Fra : Brian Emilius


Dato : 13-08-03 07:23

Jesper Brunholm wrote in dk.edb.internet.webdesign.serverside.php:
> $row = 1;
> $handle = fopen ("users/users.csv","r");
> while ($data = fgetcsv ($handle, 1000, ",")) {
> $num = count ($data);
> $row++;
> if($data[1] == 'Det der står i felt 1 i den række du vil ha fat i'){
> print "$data[1]<br>";
> }
> }

Hmmm... Nu har jeg prøvet ovenstående, men jeg får intet output...
Hvad er der mon galt?

Venlig hilsen
Brian Emilius
PS: Jeg har selvfølgelig ændret if-sætningen til en værdi i csv-filens første
kolonne

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

[5000] Jesper Brunho~ (13-08-2003)
Kommentar
Fra : [5000] Jesper Brunho~


Dato : 13-08-03 08:11

Brian Emilius wrote:
> Jesper Brunholm wrote in dk.edb.internet.webdesign.serverside.php:
>
>>$row = 1;
>>$handle = fopen ("users/users.csv","r");
>>while ($data = fgetcsv ($handle, 1000, ",")) {
>> $num = count ($data);
>> $row++;
>> if($data[1] == 'Det der står i felt 1 i den række du vil ha fat i'){
>> print "$data[1]<br>";
>> }
>>}
>
>
> Hmmm... Nu har jeg prøvet ovenstående, men jeg får intet output...
> Hvad er der mon galt?

godt spørgsmål - hvad er din præcise kode i det afsnit, er du _helt
sikker_ på at der er et førstefelt som er præcis magen til det du har
angivet i if'en, og har du sat errorhandling til at du får alle fejl
præsenteret? (det kan du læse mere om i tråden "stop ved fejl")

mvh

Jesper Brunholm


Brian Emilius (13-08-2003)
Kommentar
Fra : Brian Emilius


Dato : 13-08-03 09:02

[5000] Jesper Brunholm wrote in dk.edb.internet.webdesign.serverside.php:
> godt spørgsmål - hvad er din præcise kode i det afsnit,

$row = 1;
$handle = fopen ("users/users.csv","r");
while ($data = fgetcsv ($handle, 1000, ";")) {
$num = count ($data);
$row++;
if($data[1] == "be") {
print "$data[1]<br>";
}
}

>er du _helt sikker_ på at der er et førstefelt som er præcis magen til det du
har
> angivet i if'en,

Nej, jeg har fundet fejlen... 1. kolonne hedder ikke "1", men "0"...

>og har du sat errorhandling til at du får alle fejl
> præsenteret? (det kan du læse mere om i tråden "stop ved fejl")

ikke nødvendigt, men jeg sige mange tak for den store hjælp

Venlig hilsen
Brian Emilius


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste