Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zbiernaie informacji z roznych plikow i katalogów
Forum PHP.pl > Forum > Przedszkole
pastor
Witam
Stoje już drugi tydzien z robotą - bo nie wiem jak mam pokonać taki oto problem:
jest 13 katalogów nazwy 00,01,02,03,04,05,06,07,08,09,10,11,12, a w każdym z nich rożna liczba plików np 1.txt, 2.txt ... 35.txt etc
pliki te mają taką postać:
Kod
SR/01
c17=25
b48=125
r56=17
c17=30
b49=15

a ja potrzebuje wyciągnąć z wszystkich katalogów i plików informacje z plików, czyli żeby mi zsumował wszystkie wartości z danego symbolu np c17 i pokazał, że
Kod
c17=1525
b48=758
c03=157
d51=7895

acha jeszcze jedno, nie może brać pod uwage pierwszej pozycji z pliku, tym przykładzie jest to SR/01.
Bardzo proszę o pomoc, bo na prawdę nie wiem jak to zrobić.
Dzięki smile.gif
Leezard
moja wizja, bez kodu winksmiley.jpg

w petli wchodzisz sobie do konkretnego katalogu (opendir), potem w drugiej pobierasz nazwe kolejnego pliku (readdir z warunkami co do "." i ".." i warunkiem z funkcji is_dir), otwierasz go (fopen), czytasz linie (fgets) pomijajac pierwsza, i teraz masz linie w zmiennej. Robisz sobie explode wzgledem "=" i dostajesz tablice 2-elementowa z nazwa zmiennej i wartoscia. Teraz masz jakas glowna mape w ktorej trzymasz nazwy i wartosci. Sprawdzasz czy zmienna jest juz w mapie, jesli tak to robisz wartosc++, jesli nie to dodajesz do mapy nowy element. po przeczytaniu calego pliku zamykasz go (fclose) i tak po wszystkuch plikach w katalogu itd...

a potem sobie wyswietlasz mape i masz winksmiley.jpg

edit:

zeby bylo uniwersalnie to katalogi do petli mozesz czytac tez przez readdir z odpowiednim warunkiem z uzyciem funkcji is_dir
pastor
co do samego czytania plików to jest sprawa prosta, gorzej jest u mnie z dodawaniem wartosci do tablicy a później a wyświetlić te informacje (jaka długa jest tablica), możecie mi to napisać - dodawanie takiego samego wartości rekordu (tak żeby dodawał do poprzedniego), poźniej jego wyświetlenie.
Dzieki
Leezard
znaczy nie iwem na czym stanales ale powiedzmy ze masz juz przechodzenie i odczytywanie katalogow i plikow:

  1. <?php
  2.  
  3.  
  4. while(!feof($plik))
  5. {
  6.      $linia = fgets($plik);
  7.      $tab = explode(&#092;"=\", $linia); //podzielenie lini wg znaku = 
  8.      $klucz = $tab[0];
  9.      if(array_key_exists($klucz, $mapa)) //sprawdzenie czy klucz juz istnieje w mapie
  10.      {
  11.           $mapa[$klucz] += $tab[1]; // zwiekszenie wartosci odpowiedniego klucza o $tab[1]
  12.      }
  13.      else
  14.      {
  15.           $mapa[$klucz] = $tab[1]; // dodanie nowego klucza z wartoscia $tab[1]
  16.      }
  17. }
  18.  
  19.  
  20. ?>


i na koncu jeszcze robisz sobie wysiwetlenie mapy
  1. <?php
  2.  
  3.  
  4. foreach($mapa as $kl => $wartosc)
  5. {
  6.      echo &#092;"zmienna \" . $kl . \" ma wartosc \" . $wartosc;
  7. }
  8.  
  9.  
  10. ?>


chyba jakos tak to bedize winksmiley.jpg
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.