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 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
       
       
       
       
       
       
    • By ClBr
      Boa tarde amigos, estou tentando rodar o comando abaixo, porém o BD simplesmente não retorna nada.. Se eu deixar somente o BETWEEN ele retorna tranquilo, porém eu preciso somente das notas que são série 2.. Já pensei em colocar os comandos separados, porém não achei uma solução para ordenar tudo depois.. Como poderia fazer isso?
       
      SELECT cod, forma_pagamento, cod_emissor, cod_cliente, tipo_pessoa, valor, data FROM tabela_notas WHERE data BETWEEN '22/04/2019' AND '23/06/2019' AND serie = 2 ORDER BY cod DESC;
    • By ricardosac
      Boa tarde!
       
      Alguém possa me ajudar a resolver o problema de como remover acentuação e espaços.
       
      Ao selecionar estado Alagoas e cidade Barra de São Miguel, retorna assim Barra de São Miguel.html e que deveria ser substituído por barradesaomiguel.html.
      Segue abaixo:
       
      <div id="wrap">
                <form name="myForm" action method="post">
                <select class="selcls" name="estados" onchange="updateModels(this.form)">
                  <option>Selecione estado</option>
                  <option>Acre</option>
                  <option>Alagoas</option>

                  </select> <select class="selcls" name="cidades"></select>
                  <input id="B1" type="button" value="Ok" class="btn btn-primary">
                </form>
              </div>

              <script type="text/javascript">
              var cidades = [];
             cidades.Acre = ['Rio Branco','Acrelândia','Assis Brasil','Brasiléia','Bujari','Capixaba','Cruzeiro do Sul','Epitaciolândia','Feijó','Jordão','Mâncio Lima','Manoel Urbano','Marechal Thaumaturgo','Plácido de Castro','Porto Acre','Porto Walter','Rodrigues Alves',  'Santa Rosa do Purus','Sena Madureira','Senador Guiomard','Tarauacá','Xapuri'];
             cidades.Alagoas = ['Maceió','Água Branca','Anadia','Arapiraca','Atalaia','Barra de Santo Antônio','Barra de São Miguel','Batalha','Belém','Belo Monte','Boca da Mata','Branquinha','Cacimbinhas','Cajueiro','Campestre','Campo Alegre','Campo Grande','Canapi','Capela','Carneiros','Chã Preta','Coité do Nóia','Colônia Leopoldina','Coqueiro Seco','Coruripe','Craíbas',  'Delmiro Gouveia','Dois Riachos','Estrela de Alagoas','Feira Grande','Feliz Deserto','Flexeiras','Girau do Ponciano','Ibateguara','Igaci','Igreja Nova','Inhapi','Jacaré dos Homens','Jacuípe','Japaratinga','Jaramataia','Jequiá da Praia','Joaquim Gomes','Jundiá','Junqueiro','Lagoa da Canoa','Limoeiro de Anadia','Major Isidoro','Mar Vermelho','Maragogi','Maravilha','Marechal Deodoro','Maribondo','Mata Grande','Matriz de Camaragibe','Messias','Minador do Negrão','Monteirópolis','Murici','Novo Lino','Olho d\'Água das Flores','Olho d\'Água do Casado','Olho d\'Água Grande','Olivença','Ouro Branco','Palestina','Palmeira dos Índios','Pão de Açúcar','Pariconha','Paripueira','Passo de Camaragibe','Paulo Jacinto', 'Penedo','Piaçabuçu','Pilar','Pindoba','Piranhas','Poço das Trincheiras','Porto Calvo','Porto de Pedras','Porto Real do Colégio','Quebrangulo','Rio Largo','Roteiro','Santa Luzia do Norte','Santana do Ipanema','Santana do Mundaú','São Brás','São José da Laje','São José da Tapera','São Luís do Quitunde','São Miguel dos Campos','São Miguel dos Milagres','São Sebastião','Satuba','Senador Rui Palmeira','Tanque d\'Arca','Taquarana','Teotônio Vilela','Traipu','União dos Palmares','Viçosa'];
              // ---
              function updateModels(theForm) 
               { if(theForm.estados.selectedIndex<1){return false; }
                 var op=theForm.estados.options;
                 var newModels = cidades[op[op.selectedIndex].value];
                 theForm.cidades.options.length = 0;
                 theForm.cidades.options[0] = new Option("Selecione cidade", "");
                 theForm.cidades.options[0].selected = true;
                 for (var i=0; i<newModels.length; i++) 
                 { theForm.cidades.options[i+1] = new Option(newModels, newModels); }  
               }
              // ---
              // check both selections have been made
               document.getElementById("B1").onclick=function(event)
                { event=event || window.event;
                  var targElem = event.target || event.srcElement;
                  var thisForm=targElem.parentNode;
                  if(thisForm.estados.selectedIndex>0 && thisForm.cidades.selectedIndex>0)
                    { var cidadesP= thisForm.cidades;
                            location.href= cidadesP[cidadesP.selectedIndex].value+".html"; }
                      else { return false; } 
                }

              </script>
    • By sheepziiin
      Boa tarde colegas !
      Estou quebrando a cabeça com um job para tratamento de logradouros. Segue o raciocínio:  
      Tenho uma lista com todos os endereços do estado de São Paulo, onde os mesmos são extraídos da seguinte forma:
       
      Exemplo:
      AL-AFONSO SCHMIDT/CDM:ED. SOPHIS SANTANA_COM PRUMADA/BLC:A-555-AP - Apartamento: 61 A AL-ANAPURUS/EDI:BOULEVARD/BLC:A-777-AP - Apartamento: 131 AL-ARAPANES/EDI:CDOE,6-5ºANDAR-309-AP - Apartamento: 42 AL-ARAPANES/EDI:COND.ED.MOEMA DUPLEX LIFE-1142-AP - Apartamento: 102 AL-ARAPANES/EDI:COND.ED.MOEMA DUPLEX LIFE-1142-AP - Apartamento: 42 AL-ARAPANES/EDI:PARC BRUMENADI-982-AP - Apartamento: 191 AL-BARROS/EDI:PERVAL-186-AP - Apartamento: 1601 AL-BARROS/EDI:PERVAL-186-BL - Blocos: B AP - Apartamento: 1302 AL-CAETANO,S/CDM:ED. GIARDINO_CDOE_1_ANDAR_11 A 13-165-AP - Apartamento: 63 AL-CAETANO,S/EDI:ESPLENDOR-1234-AP - Apartamento: 71 AL-CAETANO,S/EDI:MAGENTA I_CDOE_1_ANDAR_7 A 10-2575-AP - Apartamento: 94 AL-CALCUTA-195-AP - Apartamento: 02 AL-CAMPESTRE-728-CS - Casa: 1 AL-CASA BRANCA/CDM:BRISTOL-851-CJ - Conjunto: 11 AN - Andar: 01 AL-CASA BRANCA/CDM:SAINT SIMON-667-AP - Apartamento: 11
      Notem que os casos "não tem um padrão" (até tem por tipo de residencia). Utilizei inúmeras postagens aqui do fórum e consegui solucionar os casos para residencias (padrão TIPO_LOG;LOG;COMPL;NUM), no entanto as formulas e soluções aqui indicadas por vocês "param" na primeira sequencia numérica, entretanto para a maioria dos casos, o texto continua com letras, números e caracteres.
       
      Segue o padrão final que preciso chegar.
      Exemplo: AL-AFONSO SCHMIDT/CDM:ED. SOPHIS SANTANA_COM PRUMADA/BLC:A-555-AP - Apartamento: 61 A
      Resultado Tratado: AFONSO SCHMIDT 555
       
      Desde de já muito obrigado pelos retornos que certamente virão.
    • By stumpy
      Bom dia gente,
       
      estou aqui brincando com o ASP Clássico mas me deparei com um problema antigo mas que eu não lembro como corrigir  que é a acentuação  eu tentei uma dica mais cedo mas não deu certo  ai fiz uma função para fazer o replace mas não ta rolando alguém tem alguma ideia ?
       
      o testo esta na base como " Proximo "
       
      porém quando vai pra tela aparece assim 
       
      pr&oacute;ximo
       
      obrigado pela força
×

Important Information

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