Koncepcja miała być taka: - Pętla zewnętrzna przelatuje przez plik nr 1, za każdym razem pobiera jedną linię, dodatkowo otwiera i zamyka plik nr 2 - Pętla wewnętrzna wczytuje linię z pliku 2, porównuje ją z linią z pliku nr 1, jeśli tak to zapisuje do pliku nr 3
@stacktrace: Aby mieć wskaźnik na początku. Linia z pliku nr 1 ma być porównana ze wszystkimi liniami z pliku 2. Czyli, pobieram linię z pliku nr 1, porównuję ją z wszystkimi liniami z pliku nr 2, wskaźnik mam na końcu, zamykam plik. Następnie pobieram drugą linię z pliku nr 1 i zaczynam tę samą procedurę.
@stacktrace: Wykonywanie tego skryptu trwa ponad godzinę. Dzięki takiemu otwieraniu pliku nr 3 widzę, że coś się do niego zapisuje. Dzięki, zaraz sprawdzę te funkcje.
Uprościłem trochę kod, ale problem nadal pozostaje - plik wynikowy jest pusty. Stąd ponawiam pytanie, czy nie ma tu jakiegoś błędu logicznego, np. wczytywanie tego samego rekordu, nieprawidłowy zasięg zmiennych?
@stash: Zastosowałem się do polecenia pierwszego, ale coś mi nie wyszło, wczytywało co drugi rekord. Ale mniejsza z tym, resztę wskazówek zaadaptowałem. Tylko, że nadal nie potrafi odnaleźć wystąpień.
Koncepcja miała być taka:
- Pętla zewnętrzna przelatuje przez plik nr 1, za każdym razem pobiera jedną linię, dodatkowo otwiera i zamyka plik nr 2
- Pętla wewnętrzna wczytuje linię z pliku 2, porównuje ją z linią z pliku nr 1, jeśli tak to zapisuje do pliku nr 3
Dopiero
Linia z pliku nr 1 ma być porównana ze wszystkimi liniami z pliku 2.
Czyli, pobieram linię z pliku nr 1, porównuję ją z wszystkimi liniami z pliku nr 2, wskaźnik mam na końcu, zamykam plik. Następnie pobieram drugą linię z pliku nr 1 i zaczynam tę samą procedurę.
Kolejna wersja kodu
Plik nr 1 ma 464k rekordów, plik nr 2 ma 8k rekordów, co daje nam jakieś 3 biliony iteracji w pętlach. Więc wczytanie do tablicy odpada.
Chyba źle sprecyzowałem swoje myśli, zaraz to
Próbowałem wypisywać na ekran za pomocą echo, co miało być formą sprawdzania, ale przeglądarka mi się zawieszała :)
Kod
Tarif.txt
Fap.txt
Wynik
Warning: strpos(): Empty needle in /opt/lampp/htdocs/test.php on line 14
Jak wstawię -1 przechodzi poprawnie, w obu przypadkach kod się wykonuje, tzn w pliku wynikowym mam to co chciałem.
Należy Ci się duże p--o, podaj numer konta na pw.