Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Jak wyciagnac dane z pliku A i zapisać do pliku B
majka111
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 7.06.2010

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


Witam serdecznie


dopadła mnie dzisiaj potrzeba kombinowania (IMG:style_emoticons/default/smile.gif)

a że chyba sam nic nie wymyślę zwracam się o pomoc


o co chodzi (IMG:style_emoticons/default/smile.gif)


mam plik tekstowy tytuł.txt z tytułami - kazdy tytuł w nowej linii jest ich powiedzmy 15 sztuk

potrzebuje uruchomić plik php który wyciagnie z tego pliku tytuły


jeden po drugim dodając na przykład "cz2"


- przykład : "robin hood"


i zapisze je do nowego pliku tekstowego nowy_tytuł.txt " id" "robin hood cz2"


plik do zapisania ma wygladać chyba ......... tak:
  1.  
  2. //sam wpisuje mumer od którego ma zacząc liczyć bo mam np 56 pozycji i chce dodać następne
  3. $id ="56" ;
  4.  
  5. // otwiera plik z nowymi pozycjami
  6. $plik = 'tytul.txt' ;
  7.  
  8. //pobiera kolejne wiersze
  9. $tytul = file ($plik) ;
  10.  
  11.  
  12. TUTAJ NIE WIEM JAK ZROBIĆ żeby pobierał - wiersz -- ZAPISYWAŁ GO
  13.  
  14. I wracał do nastepnego wiersza (Pętla)
  15.  
  16.  
  17.  
  18. // sam wpisuje jaki dodatek do tytułu
  19. $czesc = "cz2" ;
  20.  
  21. //zapisuje w jednej linii
  22. $efekt = "( $id ,$tytul ,$czesc),"."\n" ;
  23.  
  24. // przypisanie zmniennej $file nazwy pliku
  25. $file = "nowy_tytul.txt";
  26.  
  27. // uchwyt pliku, otwarcie do dopisania
  28. $fp = fopen($file, "a");
  29.  
  30. // blokada pliku do zapisu
  31. flock($fp, 2);
  32.  
  33. // zapisanie danych do pliku
  34. fwrite($fp, $dane);
  35.  
  36. // odblokowanie pliku
  37. flock($fp, 3);
  38.  
  39. // zamknięcie pliku
  40. fclose($fp);
  41.  



moze jakas prawie gotowa podpowiedz jak to zrobic?

pozdrawiam i dziekuje za wszelką pomoc

Ten post edytował majka111 17.02.2013, 22:04:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Mary$
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 19.02.2007
Skąd: 3city

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


Hej,

według mnie powinno Ci pomóc coś takiego:

  1. <?php
  2. /* zmienne (a wlasciwie stale) konfiguracyjne */
  3. $id = 56;
  4. $fname = "tytul.txt";
  5. $new_fname = "nowy_tytul.txt";
  6. $part = "cz2";
  7.  
  8. /* odczyt z pliku zrodlowego */
  9. $titles = file ($fname);
  10.  
  11. /* przetwarzanie pliku zrodlowego
  12.  * w zmiennej $output beda nowe dane
  13.  * z czesciami itp. */
  14. $output = '';
  15. $count = count($titles);
  16. for ($i=0;$i<$count;$i++)
  17. {
  18. $output .= '(' . $id . ' ' . $titles[$i] . ' ' . $part. ')' . "\n";
  19. $id++; //zwiekszenie nr pozycji
  20. }
  21.  
  22. /* zapis do pliku docelowego*/
  23. $fp = fopen($new_fname, "a");
  24. fwrite($fp, $output);
  25. fclose($fp);
  26. ?>


To jest mniej-więcej to, co było w Twoim kodzie, ale pozwoliłem sobie na małe modyfikacje:
1. zmienna $id zwiększa się za każdym obrotem pętli, bo skoro to jest jakaś lista pozycji, to zapewne kolejne powinny mieć wyższe numery?
2. usunąłem flock, bo ja osobiście go nigdy nie używałem i jeżeli nie ma ryzyka, że dwa skrypty będą jednocześnie chciały "dobrać się" do tego samego pliku, to nie musisz tego używać (IMG:style_emoticons/default/smile.gif)

Ponadto założyłem, że chcesz przetworzyć WSZYSTKIE linie z pliku źródłowego (a nie np. począwszy od linii 56).

Mam nadzieję, że okazałem się pomocny (IMG:style_emoticons/default/smile.gif)

Tak w ogóle, to gdzie tu jest nawiązanie do MySQL?
Go to the top of the page
+Quote Post
majka111
post
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 7.06.2010

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


Cytat(Mary$ @ 17.02.2013, 22:29:42 ) *
Hej,

według mnie powinno Ci pomóc coś takiego:


To jest mniej-więcej to, co było w Twoim kodzie, ale pozwoliłem sobie na małe modyfikacje:
1. zmienna $id zwiększa się za każdym obrotem pętli, bo skoro to jest jakaś lista pozycji, to zapewne kolejne powinny mieć wyższe numery?
2. usunąłem flock, bo ja osobiście go nigdy nie używałem i jeżeli nie ma ryzyka, że dwa skrypty będą jednocześnie chciały "dobrać się" do tego samego pliku, to nie musisz tego używać (IMG:style_emoticons/default/smile.gif)

Ponadto założyłem, że chcesz przetworzyć WSZYSTKIE linie z pliku źródłowego (a nie np. począwszy od linii 56).

Mam nadzieję, że okazałem się pomocny (IMG:style_emoticons/default/smile.gif)

Tak w ogóle, to gdzie tu jest nawiązanie do MySQL?


serdeczne dzieki


Jak sie człowiek do końca nie zna to i MySQL zobaczy

wszystkie Twoje założenia były słuszne (IMG:style_emoticons/default/smile.gif)

jest właśnie tak jak miało być

jest mały ZONK ale ...bede próbował go odszukać (IMG:style_emoticons/default/smile.gif) i zmienić

wyswietla mi tak:

(61 RobinHood
cz2)

a wcześniej miałem w założeniu

(61,RobinHood,cz2)

Wielkie dzieki
Go to the top of the page
+Quote Post
Mary$
post
Post #4





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 19.02.2007
Skąd: 3city

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


aaa no właśnie, bo zapomniałem, że to przenosi całą linię z pliku źródłowego, zatem przenosi również znak nowej linii (IMG:style_emoticons/default/smile.gif)

zamień:
  1. $output .= '(' . $id . ' ' . $titles[$i] . ' ' . $part. ')' . "\n

na:
  1. $output .= '(' . $id . ', ' . substr($titles[$i],0,-1) . ', ' . $part. ')' . "\n


ta modyfikacja pozwoli Ci na wycięcie ostatniego znaku z tytułu - znaku nowej linii (IMG:style_emoticons/default/wink.gif)

no i wcześniej usunąłem te przecinki, teraz dodałem je z powrotem (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
majka111
post
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 7.06.2010

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


Cytat
ta modyfikacja pozwoli Ci na wycięcie ostatniego znaku z tytułu - znaku nowej linii wink.gif




dalej łamie linie


Go to the top of the page
+Quote Post
Mary$
post
Post #6





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 19.02.2007
Skąd: 3city

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


a jak dokładnie wygląda struktura pliku źródłowego? Podaj przykładowe kilka wierszy na zasadzie kopiuj-wklej
Go to the top of the page
+Quote Post
majka111
post
Post #7





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 7.06.2010

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


Cytat
a jak dokładnie wygląda struktura pliku źródłowego? Podaj przykładowe kilka wierszy na zasadzie kopiuj-wklej



jedyny kod jaki mam to to co napisałeś (IMG:style_emoticons/default/smile.gif)


plik tekst tworzę recznie kopiuj wklej kazdy w kolejnej lini

i efekt

mam w postaci ze złamaną linią, ale jestem i tak zadowolony (IMG:style_emoticons/default/smile.gif) bo mam mnóstwo zaoszczędzonej pracy


teraz tylko uzywam "delete" (IMG:style_emoticons/default/wink.gif) i linie są równe


mi to nie przeszkadza bo z pliku B tez robie kopiuj wklej - recznie


że tak jak mówie JESTEM wdzięczny (IMG:style_emoticons/default/wink.gif)


Go to the top of the page
+Quote Post
Mary$
post
Post #8





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 19.02.2007
Skąd: 3city

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


Trzeba by rozbić ten tytuł na poszczególne znaki i zobaczyć co właściwie siedzi tam na końcu, ale skoro pasuje Ci wersja obecna, to ok (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 06:46