Jump to content
Gabriel Jansen

[Colaboração] Replace entre caracteres.

Recommended Posts

Boa tarde!

 

Não sei se seria o lugar correto mas queria deixar uma pequena colaboração, em meio a pesquisa na internet não achei uma forma para o asp clássico de fazer replace entre duas variáveis definida e tentei estudar um pouco sobre replace e não consegui entender ao certo, então apelei.

 

Em meio ao texto pode ser que precise remover algo que está entre o determinada parte do conteúdo, ex: Abacaxi <0,1111> desidratado,  para Abacaxi desidratado.
Criei a função abaixo:

FUNCTION REPLACE_ENTRE(VARIAVEL,INICIO,FIM)
	
		TEXTO=VARIAVEL
		
		INICIA=split(TEXTO,INICIO)
		IF Ubound(INICIA)>"0" Then		
			FINALIZA=split(INICIA(1),FIM)
			REPLACE_ENTRE=INICIA(0)&""&FINALIZA(1)
		ELSE
			REPLACE_ENTRE=TEXTO
		END IF
		
END FUNCTION

Para fazer o replace chama ela dessa forma, caso queira pode fazer a alteração dos caracteres para qualquer um que deseja (desde que haja diferença entre elas tipo: [ , ], <,>, sx, xs):

REPLACE_ENTRE("Variavel que deseja fazer replace","caractere que identifica inicio","caractere que identifica o final")

Quero retirar uma parte do texto onde fica entre os caracteres "[" e "]".

Há quem o faça [mas não o aconselha] por isso não o farei.

 

FUNCTION REPLACE_ENTRE(VARIAVEL,INICIO,FIM)
	
		TEXTO=VARIAVEL
		
		INICIA=split(TEXTO,INICIO)
		IF Ubound(INICIA)>"0" Then		
			FINALIZA=split(INICIA(1),FIM)
			REPLACE_ENTRE=INICIA(0)&""&FINALIZA(1)
		ELSE
			REPLACE_ENTRE=TEXTO
		END IF
		
END FUNCTION

TEXTO="Há quem o faça [mas não o aconselha] por isso não o farei."

TEXTO=REPLACE_ENTRE(TEXTO,"[","]")

Imprimindo a variável ela ficará assim:

Há quem o faça por isso não o farei.

É isso ai :smile:

Share this post


Link to post
Share on other sites

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

  • Similar Content

    • By PRWEB
      Boa tarde tudo bem?
      Tenho um relatório desenvolvido em asp onde a base está em sql server.
      Como que posso fazer para que quando vou puxar o relatório e caso eu queira parar a execução? Ter um botão PARAR.
      Podem me ajudar por favor?
       
      Obrigado desde já.
    • By Claudio r Martinez
      Olá amigos, estou sempre navegando pelo forum e sempre encontro a resposta para o que preciso, mas dessa vez não encontrei e estou aqui pedindo um Help.
      Tenho um script em Asp Classico para pagamentos em cartão de crédito.
      no carrinho o usuário pode colocar varios cursos, sendo que cada um tem um limite de parcelas sem juros diferente ou não.
      Sendo assim, precisava encontrar uma forma de encontrar os arrays que tem o mesmo valor para fazer a cobrança noi cartão juntos.
      o sistema fará uma, duas ou mais cobranças diferentes no cartão conforme o numero de parcelas.
      Ex:
      parcelas(1) = 3
      parcelas(2) = 6
      parcelas(3) = 5
      parcelas(4) = 3
       
      preciso montar uma forma de saber quais parcelas são iguais para somar o valor e fazer uma cobrança só com esse numero de parcelas.
      OBS: com essas variaveis acima, o sistema faria 3 cobranças no cartão do cliente, 1 cobrança do valor somado dos itens que tem 3 parcelas selecionadas, 1 cobrança do valor do item que tem 6 parcelas selecionadas e 1 cobrança do item que tem 5 parcelas selecionadas.
      Vocês podem dar um HELP???
    • By Felipe Guedes Coutinho
      Galera, venho contribuindo com diversas dúvidas, mas hoje quem está com uma dúvida sou eu.
       
      Cenário - Gerar Dados para Relatório de Faturamento.
      Objetivo - Obter os valores totais das tabelas de Compra, Venda e Despesa agrupados por mês através de SUM dentro do "periodo" passado pela tela de consulta do relatório.
      Problema - Não existe um relacionamento entre as tabelas e eu preciso obter os resultados por 1 (UM) único select pois a cada registro lido com os valores totalizados e agrupados por mês eu movimento para um array onde o resultado do array é movimentado para um Chart do Google que gera um gráfico.
       
      Insumos:
      Tabela compra

      RESULTADO SEPARADO DA TABELA COMPRA
      SELECT  sum(vlr_pago),
              CASE extract(MONTH from dt_registro_compra)
                  WHEN 1 THEN 'Janeiro'
                  WHEN 2 THEN 'Fevereiro'
                  WHEN 3 THEN 'Março'
                  WHEN 4 THEN 'Abril'
                  WHEN 5 THEN 'Maio'
                  WHEN 6 THEN 'Junho'
                  WHEN 7 THEN 'Julho'
                  WHEN 8 THEN 'Agosto'
                  WHEN 9 THEN 'Setembro'
                  WHEN 10 THEN 'Outubro'
                  WHEN 11 THEN 'Novembro'
                  WHEN 12 THEN 'Dezembro'
              END AS mes
              FROM db_pescado_gelo.sqltb_compra
              WHERE dt_registro_compra between '2019-01-01' and '2019-12-31'
      group by mes
      order by dt_registro_compra asc
       
      RESULTADO:

       
      Tabela Venda

      RESULTADO SEPARADO DA TABELA VENDA
      SELECT  sum(vlr_vale),
              CASE extract(MONTH from dt_registro_venda)
                  WHEN 1 THEN 'Janeiro'
                  WHEN 2 THEN 'Fevereiro'
                  WHEN 3 THEN 'Março'
                  WHEN 4 THEN 'Abril'
                  WHEN 5 THEN 'Maio'
                  WHEN 6 THEN 'Junho'
                  WHEN 7 THEN 'Julho'
                  WHEN 8 THEN 'Agosto'
                  WHEN 9 THEN 'Setembro'
                  WHEN 10 THEN 'Outubro'
                  WHEN 11 THEN 'Novembro'
                  WHEN 12 THEN 'Dezembro'
              END AS mes
              FROM db_pescado_gelo.sqltb_venda
              WHERE dt_registro_venda between '2019-01-01' and '2019-12-31' 
      group by mes
      order by dt_registro_venda asc
       
      RESULTADO:

       
      Tabela Despesa

      Sei que devo colocar dt_pagamento is not null
      RESULTADO SEPARADO DA TABELA DESPESA
      SELECT  sum(vlr_pago),
              CASE extract(MONTH from dt_pagamento)
                  WHEN 1 THEN 'Janeiro'
                  WHEN 2 THEN 'Fevereiro'
                  WHEN 3 THEN 'Março'
                  WHEN 4 THEN 'Abril'
                  WHEN 5 THEN 'Maio'
                  WHEN 6 THEN 'Junho'
                  WHEN 7 THEN 'Julho'
                  WHEN 8 THEN 'Agosto'
                  WHEN 9 THEN 'Setembro'
                  WHEN 10 THEN 'Outubro'
                  WHEN 11 THEN 'Novembro'
                  WHEN 12 THEN 'Dezembro'
              END AS mes
              FROM db_pescado_gelo.sqltb_despesa
              WHERE dt_pagamento between '2019-01-01' and '2019-12-31'
                AND dt_pagamento is not null
      group by mes
      order by dt_pagamento asc
       
      RESULTADO:

       
       
      O resultado que eu gostaria é algo parecido com isso:
       
      TABELA DE VENDA TABELA DE COMPRA TABELA DE DESPESA - - R$ 31.272,55 Julho - - Agosto R$ 3.796,53 R$ 20.687,20 Agosto R$ 3.796,53 Agosto  
      Esse resultado eu "preciso" que seja através do retorno do um único SELECT, se alguém puder me ajudar, ficarei muito agradecido.
       
      Se puderem dar uma forã agradeço @Motta ; @Omar~ ; @Maujor ; @gabrielms 
       
      Att.
      Felipe Coutinho
    • By FabianoSouza
      Pessoal, to apanhando para criar uma function para remover a última vírgula que aparece na string chamada beneficios.
      Estava tentando isso:
      ... REVERSE(STUFF(REVERSE( ---------------------------------- CASE WHEN valeTransporte = '1' Then 'Vale-transporte,' ELSE '' END + CASE WHEN valeRefeicao = '1' Then 'Vale-refeição,' ELSE '' END + CASE WHEN seguroDeVida = '1' Then 'Seguro de vida,' ELSE '' END ---------------------------------- ), 1, 1, '')) AS 'beneficios' ... O problema é que nem sempre haverá string para ser tratada, aí o campo aparece como NULL e gera problema na hora de gerar um JSON pela aplicação.
      Preciso de uma function que previna a situação de não haver string, e retorne valor vazio (não NULL).
       
      Valew!
       
    • By Rui PG
      Boa tarde, Pessoal"
       
      Sou iniciante em SQL, em uma tabela do nosso BD tempos um campo que possui o registro com as informações do paciente concatenado com uma serie de valores que não precisamos.
      Como eu faço, para montar uma select para extrair desse registro apenas o que está entre aspas?
       
      O meu registro está assim:
      a:28:{i:18;s:13:"Sérgio silva";i:19;s:11:"1199900001";i:20;s:0:"n/i";i:21;s:0:"n/i";i:23;s:15:"Amil One Health";i:24;s:0:"n/i";i:27;s:0:"n/i";i:31;s:1:"2";i:32;s:0:"n/i";i:33;s:1:"2";i:34;s:0:;}
       
      Eu preciso dele assim:
      "Sérgio silva";"1199900001";"n/i";"n/i";"Amil One Health";"n/i";"n/i";"2";"n/i";"2";
       
      Observação, esses monte de valores a:28: ...etc... eles mudam, não são valores fixos, se fossem até usaria o replace, mas são vários valores.
       
      Depois que eu chegar nessa mineração: "Sérgio silva";"1199900001";"n/i";"n/i";"Amil One Health";"n/i";"n/i";"2";"n/i";"2";
      Como eu faço para alocar cada valor em campo campo qualquer, pode ser uma tabela temporária, tipo assim:
       
      |nome           |campo 1        |Campo 2 |Campo 3 |Campo 4               |Campo  5 | .....
      |Sérgio silva|1199900001|n/i              |n/i              |Amil One Health|n/i               |n/i|2|n/i|2| .....
       
      Muito obrigado amigos
       
       
       
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.