Szerző Téma: Tabulátor  (Megtekintve 5266 alkalommal)

Tabulátor
« Dátum: 2012. Augusztus 15. - 11:27:59 »
+4
Tabulátor Egyszerûsítõ
 
Ez egy apró kis kód, ami leegyszerûsíti a tabulátor \'\\t\' használatát játékon belül.
!!Csak Windowson teszteltem, nem tudom, linuxon mekkora egy tabulátor mérete!!
Tartalma
 
  • Tabulátor függvény

Használata
Ez a kód visszatérési értékként adja meg a tabulált szöveget, szoval így is kell használni scripten belül
 
Tab(tabulált szöveg eleje[], tabulálni kívánt szöveg[], tabulátor métere);

 
Szükséges
 
  • Alap \'a_samp\' függvénykönyvtár

Frissítések
Nem kívánom frissíteni ezt a kódot.
Hibák, elírások
Ha valamit elírtam, hibásan írtam meg, akkor egy kommentben jelentsétek.
Köszönöm.
Példa script
 
#include <a_samp>
#include <tabulator>
public OnFilterScriptInit() {
new szam[4],
    string[128];
for(new i = 0; i < 20; i++) {
    format(szam, 4, \"%d\", i);
    strins(string, szam, strlen(string), 128);
printf(\"%s\", Tab(string, \"2\", 5));
}
return 1;
}

 
\"3322u6w.png\"
Letöltés
Pastebin

Tabulátor
« Válasz #1 Dátum: 2012. Augusztus 15. - 19:54:08 »
0
printf(\"%s\", Tab(string, \"2\", 2));

 
Ellenõrizd le újra a fenti példával és látni fogod hogy a bevitt számsor karakterláncot elrontja.
 
0123456789101112131415161718192
[/quote]

Tabulátor
« Válasz #2 Dátum: 2012. Augusztus 15. - 20:08:13 »
0
Idézetet írta: ɐʞzssǝlosz date=1345053248\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26204\" data-ipsquote-contentclass=\"forums_Topic

printf(\"%s\", Tab(string, \"2\", 2));

 
Ellenõrizd le újra a fenti példával és látni fogod hogy a bevitt számsor karakterláncot elrontja.
 
0123456789101112131415161718192

[/quote]
Erre akartam megoldást, csak mindig hibát írt rá.
Egyébként nem hibás szerintem, mert 2 tabbal akartad eltolni (ami 16 karakter), de a beírt szöveged hosszabb, mint 16 karakter, szoval a függvény automatikusan nem tabulálja.
Ennek ellenõrzésére volt egy pár sor benne, ami szabályozta azt is, hogy például ne lehessen 0 alatti értékre tabulálni, de ismétlem, nem tudtam megoldani, mert hibát írt rá a  string visszatérés miatt.

Tabulátor
« Válasz #3 Dátum: 2012. Augusztus 15. - 20:34:18 »
0
De én elnéztem, a kód mûködik mivel a számokat úgy pakolja egymás után hogy 9 10 11 12 és így tovább és a végére oda teszi a 2-est.
Már alkotom az egyszerûsítést. Postolom ide, ha kész. :D
Edit:
 
stock 
Tab(text[], text2[], tabcount = 0)
{
new
tab_[16] = \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\",
out[128];      
if((tabcount = (((tabcount + 1) * 8) - strlen(text) - 1) / 8) < 0 || tabcount >= sizeof tab_) tabcount = 0;
format(out, sizeof out, \"%s%s%s\", text, tab_[(sizeof(tab_) - 1) - tabcount], text2);
return out;
}

 
Elkészült, én tesztelgettem és nem találtam hibát benne. Ha valaki igen akkor írjon. :D
« Utoljára szerkesztve: 2012. Augusztus 15. - 22:16:02 írta ɐʞzssǝlosz »

Nem elérhető totar

  • 425
    • Profil megtekintése
Tabulátor
« Válasz #4 Dátum: 2013. Január 07. - 18:04:23 »
0
Bocs, hogy nagyon régi téma, csak használgatom zsoleszka kódját:
 

    stock
            Tab(text[], text2[], tabcount = 0)
    {
            new
                    tab_[16] = \"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\",
                    out[128];             
            if((tabcount = (((tabcount + 1) * 8) - strlen(text) - 1) / 8) < 0 || tabcount >= sizeof tab_) tabcount = 0;
            format(out, sizeof out, \"%s%s%s\", text, tab_[(sizeof(tab_) - 1) - tabcount], text2);
            return out;
    }

 
Az a tapasztalatom, hogy ez sem mindig pontos, eltér 1-2 esetû karakterhosszúság egymás mellé kerülésekor.
New OFF, csak tapasztalat, hogy hátha lehet javítani, de ez a legjobb tabulator kód, amit eddig láttam.

Tabulátor
« Válasz #5 Dátum: 2013. Január 07. - 22:05:59 »
0
Az eltérõ egy két esetrõl kellene kép, hogy lehessen vele tesztelni.
De szerintem akkor se lesz 100 százalékos, én a karakterek szélességére próbálok ezzel utalni.
Példaként
10 darab i:
iiiiiiiiii
és 10 darab a:
aaaaaaaaaa

Tabulátor
« Válasz #6 Dátum: 2013. Január 08. - 12:49:49 »
0
elméletileg ugyanoda tolja ki õket, mert a karakterek száma alapján dolgozik.

Tabulátor
« Válasz #7 Dátum: 2013. Január 08. - 13:09:30 »
0
Ez tehát arra jó, hogy ne csúszkáljon a szöveg? Mert én dialognál hiába használom a  \\t  -t nekem másképp jelenik meg mint a többi playernek.

Tabulátor
« Válasz #8 Dátum: 2013. Január 08. - 13:46:56 »
0
igen.
az, hogy hány \\t kell az adott szövegbe, a szöveg hosszától függ.. ennek kiszámítására írtam ezt a függvényt. :D

Tabulátor
« Válasz #9 Dátum: 2013. Január 08. - 14:32:12 »
0
Nagyszerû, akkor ki is próbálom majd.  :thumbsup: Köszi szépen.  :yes:

Nem elérhető totar

  • 425
    • Profil megtekintése
Tabulátor
« Válasz #10 Dátum: 2013. Január 11. - 15:57:40 »
0
\"5b240ddaff.png\"\"7de9149b4b.png\"
tessék például.
« Utoljára szerkesztve: 2013. Január 11. - 20:04:31 írta totar »

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Tabulátor
« Válasz #11 Dátum: 2013. Január 11. - 20:22:11 »
0
Dialógba nekem se mûködött, mongyuk én %30s  el oldottam meg.
Valószinû, hogy tényleg a betû méretekkel lesz a baj. Mondjuk mostanság már nem foglalkozok vele.

Nem elérhető Gabor..

  • 1883
  • Gabor..
    • Profil megtekintése
Tabulátor
« Válasz #12 Dátum: 2013. Január 11. - 20:47:21 »
0
Idézetet írta: kurta999 date=1357932131\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26204\" data-ipsquote-contentclass=\"forums_Topic
Dialógba nekem se mûködött, mongyuk én %30s  el oldottam meg.
Valószinû, hogy tényleg a betû méretekkel lesz a baj. Mondjuk mostanság már nem foglalkozok vele.
 
Ezt a 30-as dolgot kifejtenéd légyszi?

Nem elérhető totar

  • 425
    • Profil megtekintése
Tabulátor
« Válasz #13 Dátum: 2013. Január 11. - 21:09:58 »
0
Idézetet írta: kurta999 date=1357932131\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26204\" data-ipsquote-contentclass=\"forums_Topic
Dialógba nekem se mûködött, mongyuk én %30s  el oldottam meg.
Valószinû, hogy tényleg a betû méretekkel lesz a baj. Mondjuk mostanság már nem foglalkozok vele.
 
Okés
 

Ezt a 30-as dolgot kifejtenéd légyszi?
 
[/quote]
Ezt leltem http://forum.sa-mp.com/showthread.php?t=338258

Dupla hozzászólás automatikusan összefûzve. ( 2013. Január 12. - 08:48:23 )

Én úgy próbáltam, hogy %02d. %24s\\t\\t%02d               Number, Name, Kills
\"95547b0888.png\"
« Utoljára szerkesztve: 2013. Január 12. - 08:48:24 írta totar »

Nem elérhető Gabor..

  • 1883
  • Gabor..
    • Profil megtekintése
Tabulátor
« Válasz #14 Dátum: 2013. Február 07. - 21:21:35 »
0
Valaki tud egy biztos megoldást erre a tabulátoros dologra?
Így akarnám:
Pénz: $10         Pont: 100
Ölés: 10            Halál: 10
format függvényben:
Pénz: $%d        Pont: %d
Ölés: %d           Halál: %d
Ezeket kéne tabulálni, hogy a játékban is így mutassa.
« Utoljára szerkesztve: 2013. Február 07. - 21:23:50 írta Gabor.. »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal