Skocz do zawartości
  • Ogłoszenia

  • Gdzie świętować urodziny GMCLANu   27 użytkowników zagłosowało

    1. 1. Gdzie świętować urodziny GMCLANu


      • Warszawa (bo w centrum)
      • Szczecin (bo tam mieszka Ranma i narodził się GMCLAN)

    Żeby zagłosować w tej ankiecie, prosimy się zalogować lub zarejestrować. Zobacz temat
  • 0
nowy_user

Stringi z enterami - jak je zapisać?

Pytanie

nowy_user    2

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

 

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 1
PsichiX    0

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?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
Threef    17

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()

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
gnysek    34

Ktory GM? Bo dwójka inaczej zapisuje nowe linijki i stąd może wynikać problem.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
nowy_user    2

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.

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
  • 0
Threef    17

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×