Continuar string na linha seguinte com tabulação

Mazynho
em Lixeira Pública

Mazynho

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/13Posts: 99

Galera poderiam min dizer como faço para continuar uma string na linha seguinte e ela não adquirir a tabulação. Vou exemplificar:

 

str = "ao digitar e utilizar o caractere\

ele considera esta linha como continuação da anterior,\

mas o problema é que quando tem tabulação ("tab")\

ele considera esse espaçamento parte da string e o isso atrapalha quando se quer\

fazer isso dentro de algum bloco de comandos que já esteja afastado da margem da esquerda."

 

O que quero saber é se tem como utilizar o \ e ele ignorar a tabulação, para que ela não faça parte da string.

 

Em uma função, por exemplo, quero uma string dentro de um if:

function exemplificando()
	if 1 + 1 == 2 then
		str = "oi\
			mundo"
	end
	return str
end 

da forma como está a string considera tabulação, fazendo com que o retorno da mesma seja "oi###mundo", coloquei o ### para representar o caractere que fica, pois não sei qual o código representa o caractere de tabulação.

 

E eu colocar a função sem indentação é muito ruim, dificulta a leitura e é feio.

function exemplificando()
	if 1 + 1 == 2 then
str = "oi\
mundo"
	end
	return str
end 

Se souberem, mesmo que não seja em na linguagem lua ficarei grato.

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

function exemplificando()

if 1 + 1 == 2 then

str = "oi "..

"mundo"

end

return str

end

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

Mazynho

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/13Posts: 99
function exemplificando()
	if 1 + 1 == 2 then
		str = "oi "..
			"mundo"
	end
	return str
end

 

Mas ai nao está utilizando um comando para continuar na linha seguinte, nesse caso você está concatenando a string e isso gasta memoria para fazer essa operação, queria algo com o \ ou algo semelhante.

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

hum.. acredito q o \ eh o unico jeito... mas tb n tenhu certeza... ;/

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

DuuhCarvalho

:)
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 19/01/12Posts: 988Gênero: MasculinoChar no Tibia: Xerife Woody

deixa na mesma linha mesmo, e usa " \n "

 

exemplo :

    local table = "Duuh\nCarvalho"
            print(table)
Duuh
Carvalho

 

Serve ?

 


function exemplo()
    if 1 + 1 == 2 then
        str = "Oi\nMundo"
    end
    return str
end

Mazynho

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/13Posts: 99

 

deixa na mesma linha mesmo, e usa " \n "

 

exemplo :

    local table = "Duuh\nCarvalho"
            print(table)

Serve ?

 

function exemplo()
    if 1 + 1 == 2 then
        str = "Oi\nMundo"
    end
    return str
end

 

Mas quero utilizar o \ quando se tratar de um texto grande, pois colocar 2000 caracteres, por exemplo, em uma linha fica difícil ler, direto no código.

DuuhCarvalho

:)
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 19/01/12Posts: 988Gênero: MasculinoChar no Tibia: Xerife Woody

humm.. tenta assim :

str = false

if 1 + 1 == 2 then
        str = "Oi\n"..
                "Mundo\n"..
                    "Lindo"
end

print(str)

edit --

ops slicer já mostrou essa maneira

vi agora


Edit 2 --

 

tenta assim, acho que funciona ..

if 1 + 1 == 2 then
        str = "OI\
                Mundo\
                    Lindo"
                    b = string.gsub(str, "\t", "")
                print(b)
end

 

Mazynho

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/13Posts: 99

humm.. tenta assim :

str = false

if 1 + 1 == 2 then
        str = "Oi\n"..
                "Mundo\n"..
                    "Lindo"
end

print(str)

edit --

ops slicer já mostrou essa maneira

vi agora

Edit 2 --

 

tenta assim, acho que funciona ..

if 1 + 1 == 2 then
        str = "OI\
                Mundo\
                    Lindo"
                    b = string.gsub(str, "\t", "")
                print(b)
end

 

Não testei, mas creio que funcione só que eu não quero fazer isso por que ele estaria fazendo uma operação para não pegar a tabulação, o que quero já disse:

 

 

Mas ai nao está utilizando um comando para continuar na linha seguinte, nesse caso você está concatenando a string e isso gasta memoria para fazer essa operação, queria algo com o \ ou algo semelhante.

 

Mas obrigado por tentar ajudar.

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit
local str = [[Oi
                Mundo
                    Lindo ]]
 
if 1 + 1 == 2 then
print(str)
end

Não entendi direito oque você quer, mas se eu não me engano existe outra maneira alem do "\".

jeoz.png

DuuhCarvalho

:)
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 19/01/12Posts: 988Gênero: MasculinoChar no Tibia: Xerife Woody
local str = [[Oi
                Mundo
                    Lindo ]]
 
if 1 + 1 == 2 then
print(str)
end

Não entendi direito oque você quer, mas se eu não me engano existe outra maneira alem do "\".

 

 

ele quer remover a tabulação ..

então isso ae já não vai funcionar, como falei funciona mais ele quer outro jeito .

dalvorsn

õ/
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/12/11Posts: 750Gênero: Masculino

Assim?

http://codepad.org/1NoFHerv

"A covardia coloca a questão: É seguro? O comodismo coloca a questão: É popular? A etiqueta coloca a questão: é elegante? Mas a consciência coloca a questão, É correto? E chega uma altura em que temos de tomar uma posição que não é segura, não é elegante, não é popular, mas o temos de fazer porque a nossa consciência nos diz que é essa a atitude correta."

(Martin Luther King)

Mazynho

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/11/13Posts: 99

 

 

Não, eu quero uma string em varias linhas com indentação, sendo que ela não pode ler a tabulação.

Oneshot

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 05/07/09Posts: 1347

Não entendi o propósito da coisa, mas falar que concatenação gasta memória, a não ser você esteja rodando o código com uma memória de 16KB, acho meio estranho sua recusa por tal método.

local str = "Isso é\
	Uma string\
		Com indentação."

str = string.gsub(str, string.char(9), string.rep(string.char(32), 4))

print(str)

Mas faz isso aí, vai substituir os TABs por 4 espaços, que são printados normalmente. Mas gasta mais "KBs" de memória.