Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zbiernaie informacji z roznych plikow i katalogów
pastor
post 13.02.2005, 10:19:18
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 13.02.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Leezard
post 13.02.2005, 11:22:23
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 19.09.2004
Skąd: Uć

Ostrzeżenie: (0%)
-----


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

Ten post edytował Leezard 13.02.2005, 11:27:25


--------------------
Nie rób nic na siłę - weź większy młotek ;)
Go to the top of the page
+Quote Post
pastor
post 13.02.2005, 11:33:06
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 13.02.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Leezard
post 13.02.2005, 13:56:47
Post #4





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 19.09.2004
Skąd: Uć

Ostrzeżenie: (0%)
-----


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

Ten post edytował Leezard 13.02.2005, 13:58:06


--------------------
Nie rób nic na siłę - weź większy młotek ;)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 09:22