[ 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 | 16
Bydlisko: Svidnik
NapísalOffline : 29.08.2008 15:51 | inicializacia viacrozmerneho pola

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: 1719
Témy: 0 | 0
NapísalOffline : 29.08.2008 16:43 | inicializacia viacrozmerneho pola

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: 1772
Témy: 35 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 29.08.2008 18:26 | inicializacia viacrozmerneho pola

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: 1719
Témy: 0 | 0
NapísalOffline : 29.08.2008 18:32 | inicializacia viacrozmerneho pola

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: 1772
Témy: 35 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 30.08.2008 9:29 | inicializacia viacrozmerneho pola

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 | 16
Bydlisko: Svidnik
Napísal autor témyOffline : 30.08.2008 10:58 | inicializacia viacrozmerneho pola

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 01.09.2008 9:31 | inicializacia viacrozmerneho pola

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...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
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 | 16
Bydlisko: Svidnik
Napísal autor témyOffline : 01.09.2008 19:39 | inicializacia viacrozmerneho pola

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 01.09.2008 20:23 | inicializacia viacrozmerneho pola

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]


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
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 | 16
Bydlisko: Svidnik
Napísal autor témyOffline : 01.09.2008 20:33 | inicializacia viacrozmerneho pola

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 01.09.2008 20:39 | inicializacia viacrozmerneho pola

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>';
?>


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
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 | 16
Bydlisko: Svidnik
Napísal autor témyOffline : 01.09.2008 20:47 | inicializacia viacrozmerneho pola

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: 1772
Témy: 35 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 01.09.2008 21:20 | inicializacia viacrozmerneho pola

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 | 16
Bydlisko: Svidnik
Napísal autor témyOffline : 02.09.2008 0:11 | inicializacia viacrozmerneho pola

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 02.09.2008 8:27 | inicializacia viacrozmerneho pola

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

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
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 | 16
Bydlisko: Svidnik
Napísal autor témyOffline : 02.09.2008 10:15 | inicializacia viacrozmerneho pola

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....
 [ Príspevkov: 16 ] 


inicializacia viacrozmerneho pola



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

256

13.10.2007 23:13

stenley

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

facebox inicializacia

v JavaScript, VBScript, Ajax

2

305

13.09.2011 17:30

DeeJay3

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

inicializacia HDD

v Pevné disky a radiče

4

212

07.04.2013 16:34

rybicka

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

inicializacia C++

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

2

200

13.09.2012 17:31

Xarxes

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

Nero 8 -inicializacia

v Ostatné programy

8

400

24.05.2011 17:04

holubbn

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

Inicializacia SSD disku

v SSD disky

7

758

23.12.2013 0:27

Joaqo

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

inicializacia scriptu (asi)??

v JavaScript, VBScript, Ajax

2

230

03.11.2010 11:40

DeeJay3

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

91

16.05.2017 12:10

beastiq

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

dvojite drop down menu Inicializacia

v JavaScript, VBScript, Ajax

0

416

30.11.2008 23:01

miob

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

Inicializacia ovladaca LAN - chyba 37

v Ovládače

0

219

08.01.2011 0:04

HavloR

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

uvolnenie pola

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

8

302

10.01.2010 20:18

johny3212

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

dlžka pola

v HTML, XHTML, XML, CSS

2

374

16.10.2009 22:40

dessert

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

vrátenie pola

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

2

214

08.11.2012 19:01

faraon

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

INDEX POLA

v JavaScript, VBScript, Ajax

1

444

15.10.2009 11:39

Ďuri

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

zmena klucov pola

v PHP, ASP

7

329

08.05.2009 15:28

Roko

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

Zoradenie asociativneho pola

v PHP, ASP

3

465

14.04.2010 12:04

stenley



© 2005 - 2017 PCforum, edited by JanoF