m97 Opublikowano 10 Października 2012 Udostępnij Opublikowano 10 Października 2012 Witam postanowiłem napisać funkcję, która taki string: C:\x y\xx\x yz\xxx zmieni w taki: C:\"x y"\"xx"\"x yz"\"xxx" Ogólnie chodzi o to żeby funkcja wstawiała cudzysłów przed i po nazwie folderu. Jest to niby proste, ale męczę się z tym 2 dni i ciągle wychodzą mi jakieś przesunięcia. Oto mój kod: GML pierwszy = true c = 2 while(c<string_length(argument0)){ if(string_char_at(argument0,c)== "\"){ if(pierwszy == true){ c+= 1 argument0 = string_insert(chr(34),argument0,c) pierwszy = false } else{ argument0 = string_insert(chr(34),argument0,c) c+= 2 argument0 = string_insert(chr(34),argument0,c) c+=2 } } c+=1 } return argument0 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dzaher Opublikowano 10 Października 2012 Udostępnij Opublikowano 10 Października 2012 Może takie coś: GML _txt = string_replace_all(string(argument0),"\","\"+chr(34)); _txtLen = string_length(_txt) _cl = false; _txtTemp = _txt; for(_i=0;_i<_txtLen;_i+=1) { if ((string_char_at(_txt,_i)) == chr(34)) && (!_cl) { _cl = true; } else if ((string_char_at(_txt,_i)) == chr(34)) && (_cl) { _cl = false; _txtTemp = string_insert(chr(34),_txt,_i-1); _txt = _txtTemp; } } //Dodaje na koncu tekstu znak " _txtTemp = _txtTemp + chr(34); return _txtTemp; Nie wiem, czy działa pisałem z głowy :D. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 10 Października 2012 Autor Udostępnij Opublikowano 10 Października 2012 Przetestowałem twój kod i znowu pojawia się błąd z wstawianiem cudzysłowu. Po przekształceniu ścieżka wyglądała tak: RD C:\"Users"\"rc710"\"game marker"\"minecreator - własna grafika 32 na 3"2\"savegames\"1" a powinno być tak: RD C:\"Users"\"rc710"\"game marker"\"minecreator - własna grafika 32 na 32"\"savegames"\"1" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dzaher Opublikowano 10 Października 2012 Udostępnij Opublikowano 10 Października 2012 Zobacz teraz: GML _txt = string_replace_all(string(argument0),"\","\"+chr(34)); _txtLen = string_length(_txt) _cl = false; _txtTemp = _txt; for(_i=1;_i<_txtLen+1;_i+=1) { if ((string_char_at(_txt,_i)) == chr(34)) && (!_cl) { _cl = true; } else if ((string_char_at(_txt,_i)) == chr(34)) && (_cl) { _cl = false; _txtTemp = string_insert(chr(34),_txt,_i-1); _txt = _txtTemp; _i -= 1; _txtLen += 1; } } //Dodaje na koncu tekstu znak " _txtTemp = _txtTemp + chr(34); return _txtTemp; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
m97 Opublikowano 10 Października 2012 Autor Udostępnij Opublikowano 10 Października 2012 Udało się w taki sposób: GML _txt = string_replace_all(string(argument0),"\","\"+chr(34)); _txt = string_replace_all(_txt,"\",chr(34)+"\"); _txtTemp = _txt; _txtTemp = _txtTemp + chr(34); _txtTemp = string_delete(_txtTemp,6,1) 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ę