Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.12.07
Prihlásený: 07.09.13
Príspevky: 98
Témy: 16
Bydlisko: Svidnik
Príspevok NapísalOffline : 29.08.2008 15:51

potreboval by som nieco take: zo suboru zoznam.txt nacita viac rozmerne pole, v kazom riadku by bolo 8 udajov ktore nemaju pevnu velkost, malo by sa to opakovat do konca suboru. inicialzovane retazce vypise (malo by to spravit tabulku ktora ma 8 stlpcov, na konci chcem aby to spocitalo vsetky cisla v stlpci), no neviem ako zacat, dakujem za pomoc ;)







_________________
... nebite ma ja sa to raz naucim....
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 29.08.2008 16:43

Tých 8 údajov musí byť nejako oddelených. Takže si ten riadok rozdelíš na tých 8 častí (napr. pomocou funkcie split). Tým získaš pole, ktoré potom uložíš ako riadok do iného poľa. Teda niečo ako:
Kód:
$udaje = Array();
while (!je_koniec_suboru()) {
  $text = nacitaj_riadok();
  $riadok = split(";", $text);
  $udaje[] = $riadok;
}


Výpis potom bude nejako takto:
Kód:
for ($r = 0; $r < count($udaje); r++) {
  echo "<tr>";
  for ($s = 0; $s < 8; $s++) {
    echo "<td>", $udaje[$r][$s], "</td>";
  }
  echo "</tr>\n";
}
Popri tom zobrazovaní si môžeš spočítavať potrebné údaje...


Offline

Skúsený užívateľ
Skúsený užívateľ
inicializacia viacrozmerneho pola

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 29.08.2008 18:26

Skôr by som to skúsil cez funkciu file.







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 29.08.2008 18:32

Tá funkcia ti rozdelí obsah riadkov na potrebné elementy?


Offline

Skúsený užívateľ
Skúsený užívateľ
inicializacia viacrozmerneho pola

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 30.08.2008 9:29

To nie, ale je trochu nešikovné poradiť niekomu funkcie je_koniec_suboru() a nacitaj_riadok() bez ich kódu. Tak trochu som predpokladal, že toma si pozrie tvoj príspevok, nájde v ňom jedinú použiteľnú funkciu (split) a potom si pozrie dokumentáciu k file a skombinuje to. Aspoň si myslím, že každý s IQ viac ako 40 by to spravil (minimálne po vlastnom presvedčení sa o nefunkciách je_koniec_suboru() a nacitaj_riadok()). :)







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.12.07
Prihlásený: 07.09.13
Príspevky: 98
Témy: 16
Bydlisko: Svidnik
Príspevok Napísal autor témyOffline : 30.08.2008 10:58

dakujem ti chrono za pomoc, kedze som zaciatocnik tak som si s tym velmi neporadil, neviem stale mi to vypisuje chyby..... skusil som tiez nieco vymysliet s pomocou googlu a toho co si mi radil, kod sice funguje, t.j. vypise ako chcem, no asi nebudem moct spocitat obsahy stlpcov,takze to musim spravit nejako ako si mi napisal, ked to skusam kombinovat nejako tak my stale vypisuje eror... :cry: kod:
Kód:
<html>
  <head></head>
<body>
<table>
<?php

$soubor = fopen("zoznam.txt", "r") or die("Soubor sa neda otvorit.");

while (! feof($soubor))

{

  $riadok = fgets($soubor);     
  $pole=explode(";", $riadok);
  echo "<tr>";
  foreach ($pole as $cast)
  {
   echo "<td>$cast</td>\n";
  }

  echo "</tr>";

}

fclose ($soubor);

?>
 </table>
<body>
</html>







_________________
... nebite ma ja sa to raz naucim....
Offline

Správca fóra
Správca fóra
inicializacia viacrozmerneho pola

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 01.09.2008 9:31

jj, ako p360t pise, pouzitie funkcie file bude v tomto pripade vyhodnejsie:
Kód:
<?php
$arrFile = array();
$arrLines = file("zoznam.txt");
foreach($arrLines as $line) {
   $arrFile[] = explode(";",$line,8);
}
?>

Jednotlive hodnoty v riadku musia byt oddelene bodkociarkou.
Potom ti staci uz len vypisat jednotlive prvky z pola $arrFile do tabulky, ale to uz hadam zvladnes aj sam...







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.12.07
Prihlásený: 07.09.13
Príspevky: 98
Témy: 16
Bydlisko: Svidnik
Príspevok Napísal autor témyOffline : 01.09.2008 19:39

asi som sprosty ale skusam tam vseliako davat echo $arrFile[0];echo $arrFile[1]; atd., ale namiesto hodnot s tabulky mi to stale vpisuje slovo array :-(, pripadne mi to spravi tabulku zo slovom array typu matrix :cry: spravil som to takto (neviem kde dat $subor aby to slo)
Kód:
<html>

  <head>
  <head>
<body>
<table width="80%" align="center" border="2" cellpadding="5" cellspacing="4">
<?php

$soubor = fopen("zoznam.txt", "r") or die("Soubor sa neda otvorit.");

while (! feof($soubor))



{
$arrFile = array();
$arrLines = file("zoznam.txt");

foreach($arrLines as $line) {
   $arrFile[] = explode(";",$line,7);
 
}
   echo "<tr>";
   echo "<td>$arrFile[0]</td>";
   echo "<td>$arrFile[1]</td>";
   echo "<td>$arrFile[2]</td>";
   echo "<td>$arrFile[3]</td>";
   echo "<td>$arrFile[4]</td>";
   echo "<td>$arrFile[5]</td>";
   echo "<td>$arrFile[6]</td>";
   echo "<td>$arrFile[7]</td>";
   echo "</tr>";
}
fclose ($soubor);

?>
 </table>
<body>
</html>







_________________
... nebite ma ja sa to raz naucim....
Offline

Správca fóra
Správca fóra
inicializacia viacrozmerneho pola

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 01.09.2008 20:23

chcel si viacrozmerne pole, nie nahodou? to, co sa snazis ty vypisovat je jednorozmerne pole :)

napr. v prvom riadku pristupis k jednotlivym elementom nasledovne:
$arrFile[0][0], $arrFile[0][1], $arrFile[0][2], ..., $arrFile[0][7]







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.12.07
Prihlásený: 07.09.13
Príspevky: 98
Témy: 16
Bydlisko: Svidnik
Príspevok Napísal autor témyOffline : 01.09.2008 20:33

aha no jasne ja som somar ... no nic to nemeni na tom ze mi to vpisuje slovo array myslim ze ta bude nieco s premennou $soubor.... ale neviem co mam spravit







_________________
... nebite ma ja sa to raz naucim....
Offline

Správca fóra
Správca fóra
inicializacia viacrozmerneho pola

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 01.09.2008 20:39

nechapem, na co tam pleties otvaranie suboru cez fopen, while a pod...
cely zdrojak ma byt takto (+ formatovanie):
Kód:
<?php
$arrFile = array();
$arrLines = file("zoznam.txt");
foreach($arrLines as $line) {
   $arrFile[] = explode(";",$line,8);
}

echo '<table border="1">';
foreach($arrFile as $line) {
   echo '<tr>';
   foreach($line as $item) {
      echo '<td>'.$item.'</td>';
   }
   echo '</tr>';
}
echo '</table>';
?>







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.12.07
Prihlásený: 07.09.13
Príspevky: 98
Témy: 16
Bydlisko: Svidnik
Príspevok Napísal autor témyOffline : 01.09.2008 20:47

nevedel som ci to $arrLines = file("zoznam.txt"); ma na starosti otvorenie suboru, ospravedlnujem sa, nemam velke skusenosti s programovanim trosku C(bieda) ale tam som odkukal blbosti... myslel som si ze treba aj tu openfile .. ale asi chapes aj tak dik .. no idem sa pokusat tvorit dalej, ale fakt dakujem







_________________
... nebite ma ja sa to raz naucim....
Offline

Skúsený užívateľ
Skúsený užívateľ
inicializacia viacrozmerneho pola

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 01.09.2008 21:20

Jedna rada - ak sa chceš rýchlo zorientovať v PHP, čítaj http://sk.php.net/manual/en/index.php







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.12.07
Prihlásený: 07.09.13
Príspevky: 98
Témy: 16
Bydlisko: Svidnik
Príspevok Napísal autor témyOffline : 02.09.2008 0:11

p360t dakujem za radu, je tam toho fakt dost
pohol som sa o kusok dalej :roll: ale nie celkom ako somsi predstavoval :(
chcel som aby to spocitavalo stlpce, do kodu ktory mi napisal stenley (este raz dakujem) somvlozil toto
Kód:
echo '<tr>';
for($NumLine=0; $NumLine<=7; $NumLine++)
{$NumLine=+$NumLine;
 for($NumItem=0; $NumItem<=3; $NumItem++)
  {$NumItem=+$NumItem;
   $sucet = $arrFile[$NumItem][$NumLine]=+$arrFile[$NumItem][$NumLine];
  }
  echo "<td>$sucet</td>";

viem ze to vizera trochu divne asi...., dal som to spravit iba pre 4 riadky, ono to nespocita len opise posledny riadok tabulky, chcel by som sa este spitat existuje nieco co by vo funkcii ktora citalala riadky suboru albo ktora vpisovala riadky do tabulky pocitala riadky, lebo my pripada zbytocne robit o5 cyklus ktory by pocital riadky







_________________
... nebite ma ja sa to raz naucim....
Offline

Správca fóra
Správca fóra
inicializacia viacrozmerneho pola

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 02.09.2008 8:27

ako tak pozeram na tvoj kod, tak si si prehodil $NumItem a $NumLine v $arrFile[$NumItem][$NumLine], malo by to byt naopak... teraz trosku nechapem, co chces spravit, spocitat stlpce v jednom riadku, alebo spocitat stlpce vo vsetkych riadkoch zvlast?

Napr.
1;2;3;4;5;6;7;8
1;2;1;2;1;2;1;2
===========
2;4;4;6;6;8;8;10 (spocita zvlast 1.,2.,.. stlpec v kazdom riadku)

Kód:
function arrSum($arrValues,&$arrSum)
{
   foreach($arrValues as $index=>$value) {
      if(array_key_exists($index,$arrSum)) {
         $arrSum[$index] += $value;
      } else {
         $arrSum[$index] = $value;
      }
   }
}

$arrFile = array();
$arrSum = array();   //sucet stlpcov vo vsetkych riadkoch

$arrLines = file("zoznam.txt");

foreach($arrLines as $line) {
   $arrFile[] = explode(";",$line,8);
   $index = count($arrFile)-1;
   arrSum($arrFile[$index],$arrSum);
}
$arrFile[] = $arrSum;


Ak chces spocitat len hodnoty v riadku, staci pouzit funkciu array_sum:

Kód:
$arrFile = array();

$arrLines = file("zoznam.txt");

foreach($arrLines as $line) {
   $arrFile[] = explode(";",$line,8);
   $index = count($arrFile)-1;
   $arrFile[$index][] = array_sum($arrFile[$index]);
}

Vypis hodnot do tabulky zostava ten isty...


Naposledy upravil stenley dňa 02.09.2008 11:36, celkovo upravené 1






_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.12.07
Prihlásený: 07.09.13
Príspevky: 98
Témy: 16
Bydlisko: Svidnik
Príspevok Napísal autor témyOffline : 02.09.2008 10:15

dakujem pekne za plomoc vidim ze sa mam este co ucit :-/ potreboval som to co si spominal v prvom pripade, ale aj ten druhy priklad je dobry... ;-)







_________________
... nebite ma ja sa to raz naucim....
Odpovedať na tému [ Príspevkov: 16 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Prehladavanie viacrozmerneho pola

v PHP, ASP

4

428

13.10.2007 23:13

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. inicializacia C++

v Assembler, C, C++, Pascal, Java

2

405

13.09.2012 17:31

Xarxes Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. facebox inicializacia

v JavaScript, VBScript, Ajax

2

489

13.09.2011 17:30

DeeJay3 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. inicializacia HDD

v Pevné disky a radiče

4

472

07.04.2013 16:34

rybicka Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Inicializacia SSD disku

v SSD disky

7

1700

23.12.2013 0:27

Joaqo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. inicializacia scriptu (asi)??

v JavaScript, VBScript, Ajax

2

385

03.11.2010 11:40

DeeJay3 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Nero 8 -inicializacia

v Ostatné programy

8

575

24.05.2011 17:04

holubbn Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Matlab script inicializácia premenných

v Assembler, C, C++, Pascal, Java

0

382

16.05.2017 12:10

beastiq Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Inicializacia ovladaca LAN - chyba 37

v Ovládače

0

378

08.01.2011 0:04

HavloR Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. dvojite drop down menu Inicializacia

v JavaScript, VBScript, Ajax

0

551

30.11.2008 23:01

miob Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. INDEX POLA

v JavaScript, VBScript, Ajax

1

657

15.10.2009 11:39

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. uvolnenie pola

v Assembler, C, C++, Pascal, Java

8

473

10.01.2010 20:18

johny3212 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. dlžka pola

v HTML, XHTML, XML, CSS

2

537

16.10.2009 22:40

dessert Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vrátenie pola

v Assembler, C, C++, Pascal, Java

2

439

08.11.2012 19:01

faraon Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Doplňovanie input poľa

v JavaScript, VBScript, Ajax

2

562

28.08.2008 13:54

tatysp Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Presun prvkov pola

v Assembler, C, C++, Pascal, Java

2

368

18.10.2012 1:51

Gregi555 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra