nowy_user Opublikowano 12 Października 2017 Udostępnij Opublikowano 12 Października 2017 Witajcie , mam problem z zapisem zmiennej string do pliku tekstowego , który zawiera entery. Powiedzmy że dany obiekt o_square ma zmienną text. Dodaję mu następujący kod, który ma za zadanie dodać do zmiennej text , zawartość clipboardu: if(o_window_controler.active=id)//kopiowanie tekstu if keyboard_check(vk_lcontrol) if keyboard_check(ord("V")) { text+=clipboard_get_text(); o_window_controler.active=noone; } Wszystko jest w porządku, niezależnie od tego czy string ma entery czy nie, obiekt przyjmuje to co mam w schowku , i za pomącą innej funkcji w draw mogę sobie wyświetlić text w obiekcie o_square : Czyli mamy klasyczne pole tekstowe. Schody zaczynają się, jeśli chcę zapisać zmienną text do pliku txt. A następnie, przy ponownym uruchomieniu programu ją odtworzyć za pomocą text=ini_read_string("","","");. Otóż: 1. Jeżeli w schowku przy wklejaniu był enter, czyli nowa linijka, to przy ponownym uruchomieniu programu , zmienna nie zostanie odczytana 2. Jeżeli w schowku nie było enteru to wszystko będzie działało jak należy i text zaczyna się z pliku txt. Dziwna anomaila... czy ktoś wię skąd ten problem? Pozdrawiam, Nowy_user Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 12 Października 2017 Udostępnij Opublikowano 12 Października 2017 przed serializacja do pliku zamien wszystkie "dziwne" znaki stringa na ich jakas reprezentacje, ktora zachowa je w jednej linii (np. sposob HTMLowy, czyli %<kod-ascii-znaku>) i przy deserializacji z pliku zamien je z powrotem na wlasciwe - mozesz pokazac, jak wyglada plik INI po zapisie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 12 Października 2017 Udostępnij Opublikowano 12 Października 2017 Po pierwsze pytanie które muszę zadać: Czemu plik INI? Po drugie znakiem nowej linii w GM jest # Po trzecie upewnij się jakie znaki są wsadzane do zmiennej ze schowka. Od tego jest funkcja ord() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 13 Października 2017 Administratorzy Udostępnij Opublikowano 13 Października 2017 Ktory GM? Bo dwójka inaczej zapisuje nowe linijki i stąd może wynikać problem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
nowy_user Opublikowano 13 Października 2017 Autor Udostępnij Opublikowano 13 Października 2017 Jest to GM 1.4 ( z najnowszymi aktualizacjami) Tak wygląda plik ini, zwróćie uwagę na sam koniec: [pozycja] y="1634.000000" x="1453.000000" [rozmiar] y="1.000000" x="1.000000" [first] first="0.000000" [text] text="linijka a linijka b linijka c" Niestety , po odczytaniu zmiennej na początku gry za pomocą text=ini_read_string("text","text",""); i potem po rysowaniu w drawie, wyświetla tylko linijkę a ; linijka b i linijka c nie jest wyświetlana. Zatem problem raczej leży po stronie odczytu a nie zapisu do pliku. Cytuj Po pierwsze pytanie które muszę zadać: Czemu plik INI? Nie pamiętam już dlaczego użyłem w tym projekcie ini ( wracam do projektu sprzed 2 miesięcy) ale z tego co kojarzę to brakowało mi jakiejś funkcji, która była dostępna przy plikach ini. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 13 Października 2017 Udostępnij Opublikowano 13 Października 2017 haha no to zrobiło twoje złamanie linii. No ale plik ini zapisuje klucze i wartości w jednej linii więc masz błąd składni. Możesz dokonywać serializacji jak pisał Psichix albo porzucić pliki ini. Plus radził bym i tak jakoś zabezpieczać swoje dane. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się