Ir para conteúdo

Continuar string na linha seguinte com tabulação


Mazynho

Posts Recomendados

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.

Editado por Mazynho
Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

 

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.

Link para o comentário
Compartilhar em outros sites

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

 

Editado por DuuhCarvalho
Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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 "\".

Editado por Skymagnum
Link para o comentário
Compartilhar em outros sites

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 .

Link para o comentário
Compartilhar em outros sites

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.

Editado por Garou
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...