Jump to content

работа со строками


Recommended Posts

как сделать больше расстояние цифр?

помогите пожалуйста.

function russionNumberPlate ( text, vehicle )
    renderTarget = dxCreateRenderTarget(256, 64)
    dxSetRenderTarget(renderTarget)
    dxDrawImage(0, 0, 256, 64, dxCreateTexture("number/number_ru.png") )
    dxDrawText(string.match(text, "^%a" ), textOffset+5, 0, textOffset + textWidth, numberHeight, tocolor(0, 0, 0), 0.9,0.95, numberFont1, "left", "center")
    dxDrawText(string.match(text, "%d%d%d" ), textOffset-12, 0, textOffset + textWidth, numberHeight, tocolor(0, 0, 0), 0.9,0.95, numberFont1, "center", "center")
    dxDrawText(string.match(text, "%a%a" ), textOffset-55, 0, textOffset + textWidth + 10, numberHeight, tocolor(0, 0, 0), 0.9,0.95, numberFont1, "right", "center")
    dxDrawText(string.match(text, "%d+$" ), 197, 0, 244, 47, tocolor(0, 0, 0), 0.6,0.7, numberFont1, "center", "center")
    dxSetRenderTarget()
    
    local texture = getTextureFromRenderTarget(renderTarget)
    destroyElement(renderTarget)
    return texture
end

Edited by STRELA
Link to comment
  • 2 weeks later...

 dxDrawText (String.match (текст," % d% d% d»), textOffset-12, 0, textOffset + TextWidth, numberHeight, tocolor (0, 0, 0), 0.9,0.95, numberFont1, "центр", "центр") 

 

как сделать каждую цифру отдельно вот это===%d%d%d

Link to comment

@STRELA, пробелов можно сделать больше или меньше в "%d %d %d"

dxDrawText(string.format("%d %d %d",string.match(text,"(%d)(%d)(%d)")), textOffset-12, 0, textOffset + textWidth, numberHeight, tocolor(0, 0, 0), 0.9,0.95, numberFont1, "center", "center")

Если расстояние не подойдет, то собрать в отдельные переменные, и для каждой подбирать параметры dxDrawText.

local n1,n2,n3 = string.match(text,"(%d)(%d)(%d)")

Вообще мне кажется, что это всё какая-то каша у вас. Ну вот вы взяли букву вначале, дальше если у вас допустим текст вписан "аб123вгд4", то вы получите на выходе "а123аб4", т.е какого-то особого смысла в регулярках тут нет, врядли оно исправит какие-то опечатки. Если у вас уже верный текст, то можно собрать вхождения одной строчкой и далее выводить или форматировать как нужно:

local w1,n1,n2,n3,w2,w3,n4 = string.match(text, "(%a)(%d)(%d)(%d)(%a)(%a)(%d)")

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...