Szerző Téma: Szöveg szétválasztás bizonyos karakterszám után  (Megtekintve 1124 alkalommal)

Nem elérhető Wiliam Levy

  • 594
  • Wiliam Levy
    • Profil megtekintése
Szöveg szétválasztás bizonyos karakterszám után
« Dátum: 2014. október 14. - 19:32:51 »
0 Show voters
Vont már egy ilyen témám, csak nem jutottam vele sokra. :)
Mint már mondtam, nem vagyok túl jó a stringekben ezért szeretnék segítséget kérni a következõben:
Repülõtér, felsõ terminál -> Ez ugye 25 karakter, de én azt szeretném, hogy 22 karakter felett az utolsó space utáni részt leválassza, és tegye egy változóba, ergo:
Repülõtér, felsõ -> Marad
terminál -> változó
Segítséget elõre is köszönöm.
« Utoljára szerkesztve: 2014. október 14. - 20:15:13 írta divkn »

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Szöveg szétválasztás bizonyos karakterszám után
« Válasz #1 Dátum: 2014. október 19. - 03:05:39 »
0 Show voters
Idézetet írta: Peti134 date=1413674580\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51005\" data-ipsquote-contentclass=\"forums_Topic
Micsoda segítõkész közösség ...  :dots:
 :kosz: :thankyou:
 
OFF: Lehetséges nem tudják a választ.. ez nem a közösség miatt van, hogy neked nem válaszolnak vissza..
33 Megtekintések

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Szöveg szétválasztás bizonyos karakterszám után
« Válasz #2 Dátum: 2014. október 19. - 09:25:44 »
0 Show voters
new string1[] = \"Repülõtér, felsõ terminál\", string2[32], spcpoz;
for(new i = 0; i < strlen(string1); i++) {
if(i > 22) strmid(string2, string1, spcpoz+1, strlen(string1)), strmid(string1, string1, 0, spcpoz-1), break;
if(string == \' \') spcpoz = i;
}
printf(string1); //Repülõtér,
printf(string2); //Felsõ terminál

 
Végigmegyek a stringen, ha spacet talál, lejegyzi hol, ha 22 karakter fölé jut, a lementett legutolsó spacetõl a végéig lesz a 2-es string, elõtte meg az 1-es.

Nem elérhető Wiliam Levy

  • 594
  • Wiliam Levy
    • Profil megtekintése
Szöveg szétválasztás bizonyos karakterszám után
« Válasz #3 Dátum: 2014. október 19. - 11:41:46 »
0 Show voters
Idézetet írta: kzyn date=1413703544\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51005\" data-ipsquote-contentclass=\"forums_Topic

new string1[] = \"Repülõtér, felsõ terminál\", string2[32], spcpoz;
for(new i = 0; i < strlen(string1); i++) {
if(i > 22) strmid(string2, string1, spcpoz+1, strlen(string1)), strmid(string1, string1, 0, spcpoz-1), break;
if(string == \' \') spcpoz = i;
}
printf(string1); //Repülõtér,
printf(string2); //Felsõ terminál

 
Végigmegyek a stringen, ha spacet talál, lejegyzi hol, ha 22 karakter fölé jut, a lementett legutolsó spacetõl a végéig lesz a 2-es string, elõtte meg az 1-es.
 
Kapok rá egy pár errort :S
 
               
new string1[] = \"Repülõtér, felsõ terminál\", string2[32], spcpoz;
for(new i = 0; i < strlen(string1); i++) {
if(i > 22) strmid(string2, string1, spcpoz+1, strlen(string1)), strmid(string1, string1, 0, spcpoz-1), break;//2055
if(string == \' \') spcpoz = i;//2056
}

 


C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2055) : error 029: invalid expression, assumed zero
C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2055) : warning 215: expression has no effect
C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2056) : error 017: undefined symbol \"string\"
C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2056) : warning 215: expression has no effect
C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2056) : error 001: expected token: \";\", but found \"]\"
C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2056) : error 029: invalid expression, assumed zero
C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2056) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
5 Errors.
 
[/quote]

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Szöveg szétválasztás bizonyos karakterszám után
« Válasz #4 Dátum: 2014. október 19. - 12:00:15 »
0 Show voters
), break;

 
Helyett:
 
) break;

 

if(string == \' \') spcpoz = i;

 
helyett:
 
if(string1 == \' \') spcpoz = i;

Nem elérhető Erik3333

  • 945
  • SMF | phpBB | TS3 | PHP | HTML | CSS | JS | PAWN | JAVA
    • Profil megtekintése
Szöveg szétválasztás bizonyos karakterszám után
« Válasz #5 Dátum: 2014. október 19. - 12:15:19 »
0 Show voters
Itt a javított verzió:
 
new string1[] = \"Repülõtér, felsõ terminál\", string2[64], spcpoz;
for(new i = 0; i < strlen(string1); i++)
{
if(i > 22)
{
   strmid(string2, string1, spcpoz+1, strlen(string1));
   strmid(string1, string1, 0, spcpoz);
   break;
}
if(string1 == \' \') spcpoz = i;
}
printf(string1); //Repülõtér, felsõ
printf(string2); //terminál

Nem elérhető Wiliam Levy

  • 594
  • Wiliam Levy
    • Profil megtekintése
Szöveg szétválasztás bizonyos karakterszám után
« Válasz #6 Dátum: 2014. október 19. - 12:26:22 »
0 Show voters

new string1[] = MegalloNev(nid,NPC_MEGALLO_JELENLEGI), string2[32], spcpoz;

 

C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2052) : error 008: must be a constant expression; assumed zero
C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2052) : error 029: invalid expression, assumed zero
C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2052) : error 017: undefined symbol \"string2\"
C:\\játékok\\sampserver\\filterscripts\\lstkr.pwn(2052) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
4 Errors.
[/quote]

Nem elérhető Erik3333

  • 945
  • SMF | phpBB | TS3 | PHP | HTML | CSS | JS | PAWN | JAVA
    • Profil megtekintése
Szöveg szétválasztás bizonyos karakterszám után
« Válasz #7 Dátum: 2014. október 19. - 14:41:30 »
0 Show voters
new string1[128], string2[32], spcpoz;
format(string1, sizeof(string1), \"%s\", MegalloNev(nid, NPC_MEGALLO_JELENLEGI));

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Szöveg szétválasztás bizonyos karakterszám után
« Válasz #8 Dátum: 2014. október 19. - 16:57:51 »
0 Show voters
Köszönöm mindenkinek, aki segített javítani az ocsmány hibákat a kódomban. Megírtam egy eljárásnak is, hogy egyszerűbb legyen a használata:
 
splitspaces(string1[], string2[], limit = 22) {
new spcpoz = strlen(string1);
for(new i = 0; i != strlen(string1); i++) {
if(i > limit) {
            strmid(string2, string1, spcpoz+1, strlen(string1), strlen(string1));
   strmid(string1, string1, 0, spcpoz, strlen(string1));
   break;
}
        else if(string1 == \' \') spcpoz = i;
    }
    printf(string1);
    printf(string2);
}

 
Használata:
 
new string1[] = \"Repülőtér, felső terminál\", string2[64];
splitspaces(string1, string2);

 
Eredmény: \"Névteledfgdgdfgn.jpg?dl=1\"

Nem elérhető Wiliam Levy

  • 594
  • Wiliam Levy
    • Profil megtekintése
Szöveg szétválasztás bizonyos karakterszám után
« Válasz #9 Dátum: 2014. október 19. - 22:11:38 »
0 Show voters
Idézetet írta: Gun22 date=1413722490\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51005\" data-ipsquote-contentclass=\"forums_Topic

new string1[128], string2[32], spcpoz;
format(string1, sizeof(string1), \"%s\", MegalloNev(nid, NPC_MEGALLO_JELENLEGI));

 

Igen igen közben kyzn és a saját magam erejével kijavitottam :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal