![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 31.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Potrzebuje pomocy w wypełnieniu tabeli danymi z pliku. Fragment pliku: 27.01.2010 9:34 - Dostęp użytkownika (odstepy miedzy danymi mają po kilka spacji, tego na forum nie widać) K:ZAMEK DOM U:Wojciech 27.01.2010 10:01 - Dostęp użytkownika K:ZAMEK DOM U:Janek 27.01.2010 10:20 - Dostęp użytkownika K:ZAMEK DOM U:Janek 27.01.2010 10:38 - Dostęp użytkownika K:ZAMEK DOM U:Wojciech 27.01.2010 10:46 - Dostęp użytkownika K:ZAMEK BIURO U:Irek Pola w tabeli: id, data, godzina, opis, zamek, uzytkownik Plik jest generowany automatycznie, nie mam możliwości zmiany jego formatu. Dla pewności mogę przesłać plik na maila. Z góry dziękuje za pomoc. Ten post edytował sereczyn 31.01.2010, 20:05:38 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wczytujesz plik za pomocą tego: http://pl.php.net/manual/en/function.file-get-contents.php , liczysz ile tych spacji tam jest, robisz explode(), jako delimiter podając te właśnie spacje (np " "). Jak masz tablicę, to już nic prostszego (IMG:style_emoticons/default/smile.gif) .
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 31.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
A co jeżeli ilość spacji nie jest zawsza taka sama?
Ten post edytował sereczyn 1.02.2010, 21:24:16 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
No to masz trudniej (IMG:style_emoticons/default/smile.gif) . Nie wiem na ile twój przykład z pierwszego posta jest odpowiadający rzeczywistości, ale jeśli plik wygląda dokładnie tak, to najpierw przepuść po stringu wyrażenie regularne z trzeciego posta stąd: http://www.webdeveloper.com/forum/showthread.php?t=121293 , oczywiście przerób aby odpowiadało to twoim potrzebom, podobnym wyrażeniem regularnym wyciągnij godziny, dalej, już prościej - badasz pozycję wystąpienia K: i U: i wycinasz odpowiednią część, to samo dla usera. Wszystko do tablicy i masz z górki. Metoda jest niedoskonała i zawodna, ale jak element oddzielający poszczególne rekordy może być różny, to tylko to mi przychodzi do głowy. Chyba, że to nie spacje tylko tabulatory?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Żadne file_get_contents bo zamuli serwer, o ile się wczyta w ogóle.
Najpierw plik musisz przeparsować linia po linii: - oczywiście uchwyt to to, co zwraca funkcja fopen. Musisz obrobić każdą linijkę, sprawdzić, co nie trzeba wyciąć etc. a następnie stworzyć z tego plik .csv, gdzie poszczególne pola są rozdzielane tabulacją. Po prostu bierzesz linijkę po linijce z pliku, obrabiasz i zapisujesz do nowego pliku. Potem wystarczy plik wrzucić do bazy używając zapytania LOAD DATA INFILE. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:19 |