![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 20.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć wszystkim.
Chciałbym wykorzystać PHP do stworzenia skryptu do porównania dwóch plików tekstowych o rozmiarze ~kilkaset MB każdy z linii komend. Struktura obydwu jest mniej więcej taka: ^L RekordA PoleA1 WartośćA1 PoleA2 WartośćA2 PoleA3 WartośćA3 ^L ^L RekordB PoleB1 WartośćB1 PoleB2 WartośćB2 PoleB3 WartośćB3 ^L ... Znak "^L" to Form Feed (0c hex). Kolejność "rekordów" (w powyższym przykładzie są 2: zielony i niebieski, oddzielone ^L^L) jest zmienna w obydwu plikach. Wstępnie zarys tematu widzę tak, że mógłbym: - wczytać obydwa pliki do pamięci RAM do dwóch odrębnych tablic, których poszczególne elementy będą zawierały "rekordy" (dane od ^L do ^L); - porównać potem poszczególne elementy powyższych tablic ("rekordy"). Pytania: 1) Nie wiem w jaki sposób podzielić wspomniane pliki danych na kawałki pod względem elementu ^L. Mógłby ktoś podpowiedzieć rozwiązanie? 2) Czym najlepiej było by porównywać "rekordy"? Chodzi o porównanie znak po znaku (linijka po linijce) danych tekstowych, zastanawiam się nad użyciem polecenia Unix diff... 3) Jakie problemy ewentualnie mogą być związane z wczytywanie tak dużych (~kilkaset MB) plików do RAM-u? Dzięki za wszelką pomoc ![]() Pozdrawiam, Rafał. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 19:14 |