Worie Temat założony przez niniejszego użytkownika |
[C++] Pobieranie danych z pliku od pewnego momentu. » 2012-12-23 11:59:54 Witam, czytam wsze forum od dawna jako gość, ale wreszcie założyłem własne konto :) Sprawa wygląda tak: Stworzyłem sobie program w konsoli, który tworzy pliki w rozszerzeniu PHP z danymi które wprowadził użytkownik. I tutaj wszystko mi śmiga jak należy. Ale chce się zabrać za stworzenie Edytora tych plików, tzn: zeby po wrzuceniu plików PHP do odpowiedniego katalogu, program szukał plików (to mam zamiar zrobić for'em , ze zwiększaną wartośćią bo pliki mają tylko nazwy liczbowe) i POBIERAŁ/EDYTOWAŁ dane od pewnego ciągu znaku. Przykładowo: Mam plik php <? $zmienna1 = 30; $zmienna2 = 40; $zmienna3 = 50; ?>
Chcę wiedzieć, jak pobierać dane (czy to w ogóle możliwe) po danym ciągu znaku który wczesniej zdefiniujemy, np jeśli użytkownik zażyczy sobie A, to aby dane zostały pobrane(zedytowane?) po ciągu "$zmienna1 =" do końca linijki, jeśli B to po ciągu "$zmienna2 ="...Co do edycji, myślałem by program pobierał wszystkie linijki tekstu z pliku, ale gdy natrafi na coś , co chcemy zmienić, po prostu pisał coś innego i leciał dalej. Czy jest to w ogóle wykonalne? Generalnie chodzi mi o pogrubiony tekst. |
|
xevuel |
» 2012-12-23 12:26:54 Tego typu operacje będą najprostsze z użyciem std::string, musisz również poczytać o operacjach na plikach ( Obsługa plików). Przy czytaniu pliku odrzucaj pierwsze dwa/cztery i ostatnie dwa znaki (<?/<?php i ?>). Następnie: if(wybor == "A") { // Podziel tekst wg znaku równości i obetnij średnik na końcu dla linijki 1 }
else if(wybor == "B") { // Podziel tekst wg znaku równości i obetnij średnik na końcu dla linijki 2 }
|
|
Worie Temat założony przez niniejszego użytkownika |
» 2012-12-23 19:34:51 Czyli musiałbym to robić linijkami? Tzn, pobieram od '=' i pobieram np linijkę piątą?
Nie da rady zrobić żeby właśnie po konkretnym ciągu znaków pobierał dane? Bo każdy plik bedzie mógł wyglądać inaczej, np $zmienna1 w pliku A będzie w 7 linijce, w B będzie w linijce 28, a w C np w 2, a zalezy mi tylko na zmianie tej jednej, konkretnej zmiennej
Wybaczcie ze nie daje kodu ale chwilowo jestem poza domem (święta) i nie mam dostępu do moich plików. (swoją drogą, Wesołych Świąt!) |
|
xevuel |
» 2012-12-23 19:54:46 Możesz, wystarczy odczytać cały plik, następnie znaleźć pozycję tego "konkretnego ciągu znaków", a na końcu obciąć to, co się znajduje x znaków po tej pozycji. |
|
Worie Temat założony przez niniejszego użytkownika |
» 2012-12-23 20:12:45 Hmm... Czy mógłbym prosic o jakiś krótki kod z wykorzystaniem w/w? Bo lekcje czytam już któryś raz, symfonie też czytam ale coś chyba nie umiem czytać miedzy wierszami
z góry dzieki! |
|
xevuel |
» 2012-12-23 20:18:44 Przeczytaj uważnie lekcję, którą podałem wyżej. Krótki, a zarazem pełny kod masz na jej końcu. Czego w nim nie rozumiesz? |
|
Worie Temat założony przez niniejszego użytkownika |
» 2012-12-23 20:57:22 Kod końcowy pobiera cały plik, liniowo - tak? Jak mam pobrać dane od ciągu znaków czy od jednego znaku a potem obciąć ten średnik? To jest mój główny problem :P |
|
xevuel |
» 2012-12-23 21:34:10 A nie lepiej wczytać cały plik (choćby i linijka po linijce jak w kursie), a potem odpowiednio operować na jego zawartości przypisanej do zmiennej std::string? |
|
« 1 » 2 |