Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wczytanie danych z pliku *.txt do tablicy dwuwymiarowej.
Forum PHP.pl > Forum > Przedszkole
foqz
Witam,

nie wiem jak napisać skrypcik, który wczyta dane z pliku *.txt i zapisze je do tablicy dwuwymiarowej, na której później będę chciał przeprowadzać pewne działania matematyczne.




Ważne!

Format pliku tekstowego:

1  23 4 45

1  11 4 63

2  12 7 23

itd...

[czyli elementy tablicy oddzielone są znakiem spacji, a na końcu zapewne jest znak końca linii]


Proszę o pomoc, zainteresowanym dziękuję i pozdrawiam.
thek
1. Zadeklaruj 2-wymiarową tablicę
2. Wczytaj linię z pliku
3. Każdą linię podziel na elementy, gdzie znakiem oddzielającym jest spacja
4. Zapisz tę tablice jako wiersz tablicy 2-wymiarowej
5. Wracaj do punktu 2 tak długo aż skończy Ci się plik.

To jest algorytm... Niemal każdy punkt to gotowa funkcja lub najwięcej 2 gotowe. Skrypt więc to tylko kilka linijek kodu i jest niezwykle prosty jeśli pomyślisz trochę.
darko
Jeśli między liczbami jest jeden odstęp (spacja), to:
  1. $filename = "file.txt";
  2. $handle = fopen($filename, "r");
  3. $data = array();
  4. if ($handle) {
  5. while (!feof($handle)) {
  6. $buffer = fgets($handle, 4096);
  7. $data[]=explode(" ", $buffer);
  8. }
  9. fclose($handle);
  10. } else {
  11. die("Error opening a file $filename");
  12. }
  13. print_r($data);
  14. // zwróci: Array ( [0] => Array ( [0] => 1 [1] => 23 [2] => 4 [3] => 45 ) [1] => Array ( [0] => 1 [1] => 11 [2] => 4 [3] => 63 ) [2] => Array ( [0] => 2 [1] => 12 [2] => 7 [3] => 23 ) )

tvister
Zakozaczę znajomością manual-a smile.gif
A jeżeli plik potraktować jako csv-auke to

  1. $tabl = array();
  2. $uchwyt = fopen ("test.csv","r");
  3. while (($data = fgetcsv($uchwyt, 1000, " ")) !== FALSE) {
  4. $tabl[] = $data;
  5. }
  6. fclose ($uchwyt);
darko
Cytat
Zakozaczę znajomością manual-a


hipokryta smile.gif
foqz
darko - dzięki, myślę, że Twoja pomoc będzie najbardziej użyteczna, 

tvister - przemyślę później,

thek - gratuluję poczucia humoru,




Pozdrawiam w.w.

thek
foqz... Mój algorytm to tylko wariacja kodu darko z użyciem funkcji file smile.gif potem explode na pętli foreach i wsio smile.gif ale skoro masz spacje to pomysł tvistera z gotową funkcja dla plików csv jest jeszcze lepszy niż mój smile.gif Kompletnie o niej zapomniałem bowiem. Za rzadko plików csv używam...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.