Avatar billede walden Nybegynder
05. juli 2007 - 18:47 Der er 11 kommentarer og
1 løsning

de samlede antal æbler og pærer

Jeg har nogle tal-værdier placeret i en række forskellige txt-filer. Jeg har forsøgt at lave et script som ligger tallene sammen og udskriver dem. Det er også lykkes, men koden er pinlig primitiv og uelegant. Er der nogen, der vil hjælpe med at sætte koden mere professionelt op?

Min kode, som udskriver det samlede antal æbler og pærer, ser sådan her ud :

<?php
$aeb1 = file_get_contents("aebler/aebler_01.txt");
$aeb2 = file_get_contents("aebler/aebler_02.txt");
$aeb3 = file_get_contents("aebler/aebler_03.txt");

$pae1 = file_get_contents("paerer/paerer_01.txt");
$pae2 = file_get_contents("paerer/paerer_02.txt");
$pae3 = file_get_contents("paerer/paerer_03.txt");

echo ($aeb1+$aeb2+$aeb3+$pae1+$pae2+$pae3);

?>

Det må kunne gøres fx med
for ( $i = 0; $i <= 3; $i++ ) ....

jeg kan bare ikke få det til at virke.
Avatar billede jakobdo Ekspert
05. juli 2007 - 19:39 #1
Har ikke testet, men måske noget i stil:

<?php

$aeblerNum = 0;
foreach(glob("aebler/*.txt") as $aebler)
{
    $aeblerNum += (INT)file_get_contents($aebler);
}

$paererNum = 0;
foreach(glob("paerer/*.txt") as $paerer)
{
    $paererNum += (INT)file_get_contents($paerer);
}

echo ($aeblerNum+$paererNum);

?>
Avatar billede walden Nybegynder
05. juli 2007 - 19:58 #2
Det virker perfekt ... og så i første hug - dejligt :-)
Tak for det ... laver du lige et svar, så jeg kan give dig nogle point?
Avatar billede jakobdo Ekspert
05. juli 2007 - 20:24 #3
Svar!
Avatar billede walden Nybegynder
05. juli 2007 - 20:34 #4
Og din måde må siges at være en hel del mere elegant end det jeg selv var kommet frem til :-)
Avatar billede jakobdo Ekspert
05. juli 2007 - 21:31 #5
Ja og nej.
Min måde tager alle txt filer i de 2 biblioteker, så man kunne godt tilføje lidt ekstra tjek, men nu ved du det.
Avatar billede walden Nybegynder
05. juli 2007 - 22:00 #6
Ok ... tak for den ekstra information. Jeg har kun relevante filer i de to biblioteker, så det virker da, men det var selvfølgelig ikke helt det jeg efterspurgte. Jeg ledte efter en løkke, der skulle løbe et bestemt antal filer igennem,ligge talene sammen og skrive dem ud.

Men det her virker jo ... og ... if it aint broken, don't fix it.
Avatar billede jakobdo Ekspert
06. juli 2007 - 07:55 #7
$antalAebleFiler = 3
$aeblerNum = 0;
for($i = 1; $i <= $antalAebleFiler; $i++ )
{
    $aeblerNum += (INT)file_get_contents("aebler/aebler_".sprintf("%02d",$i).".txt");
}

$antalPaereFiler = 3
$paererNum = 0;
for($i = 1; $i <= $antalPaereFiler; $i++ )
{
    $paererNum += (INT)file_get_contents("paerer/paerer_".sprintf("%02d",$i).".txt");
}

echo ($aeblerNum+$paererNum);

PS: Denne løsning virker kun fra 01-99
Avatar billede walden Nybegynder
06. juli 2007 - 10:45 #8
Hej jakobdo

Tak for den grundighed du ligger i dine svar ... det er virkelig guld værd, at man kan finde seriøs hjælp her på eksperten.dk.

Dit seneste forslag indfrier vist alle mine oprindelige ønsker til det script jeg var i gang med. Jeg får dog en fejlmeddelelse, der hindrer scriptet i at virke:

"syntax error, unexpected T_VARIABLE"
Avatar billede walden Nybegynder
06. juli 2007 - 10:48 #9
Og den syntaksfejl var så bare et manglende semikolon efter "$antalAebleFiler = 3" !!

Det virker som det skal :-)
Avatar billede jakobdo Ekspert
06. juli 2007 - 11:28 #10
Dog kunne du overveje at navngive filerne på denne måde:

aebler_1.txt
aebler_2.txt
...
aebler_11245.txt

Så skal du blot erstartte: sprintf("%02d",$i) med $i
Avatar billede walden Nybegynder
06. juli 2007 - 11:35 #11
Ja - du har ret. Det 0 foran tallene fra 1-9 giver mig generelt en hel masse problemer. Og jeg kan faktisk ikke huske, hvorfor jeg oprindelig valgte den navnekonvention ... men der var vist en eller anden grund :o)
Avatar billede jakobdo Ekspert
06. juli 2007 - 12:03 #12
:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester