Fórum
Bem-Vindo, Visitante
Nome de usuário: Senha: Lembrar-me
Linguagem de Programação ADVPL
  • Página:
  • 1
  • 2

TÓPICO: String para Array

Re: String para Array 02 Out 2012 19:36 #6377

  • lalberto
  • Avatar de lalberto
  • OFFLINE
  • Administrador
  • Ajudar à quem Precisa Faz Muito Bem !!!
  • Postagens: 4135
  • Thank you received: 594
  • Karma: 85
Caracá muito bom Rodrigo, parabéns cara.
Luiz Alberto V. Alves
Analista Sênior Protheus
(12) 9 8256-5905

Proprietário Sites
www.masteradvpl.com.br
www.3lsystems.com.br

Curta o MasterAdvpl
www.facebook.com/MasterAdvpl
O administrador desabilitou o acesso público de escrita.
Os seguintes usuários disseram Obrigado: rodrigolparaujo

Re: String para Array 02 Out 2012 19:18 #6374

Resolvi da seguinte maneira:

cLinha := FT_FREADLN()
cLinha := fAspas(cLinha)

Static Function fAspas(cString)
Local parte1:=parte2:=parte3:=regnovo:=""
Local waspa1:=0
Local waspa2:=0

waspa1:=at('"',cString) //busca posição da 1ª aspa
waspa2:=at('"',substring(cString,waspa1+1,9999)) //busca posição da 2ª aspa após a 1ª aspa

parte1:=substring(cString,1,waspa1-1) //parte1 - até a 1ª aspa, incluindo a aspa dupla
parte2:=strtran(substring(cString,waspa1+1,waspa2-1),",","") //parte2 - só o valor até a 2ª aspas, eliminando todas as virgulas
parte3:=substring(cString,waspa1+waspa2+1,99999) //parte3 - restante do registro a partir da 2ª aspas
regnovo:=parte1+parte2+parte3 //resultado final
Return regnovo

obrigado pessoal,obrigado Fabio Abreu
O administrador desabilitou o acesso público de escrita.
Os seguintes usuários disseram Obrigado: lalberto

Re: String para Array 02 Out 2012 14:46 #6332

  • lalberto
  • Avatar de lalberto
  • OFFLINE
  • Administrador
  • Ajudar à quem Precisa Faz Muito Bem !!!
  • Postagens: 4135
  • Thank you received: 594
  • Karma: 85
Pois é, tão simples, mas se pode complicar pra quê simplificar kkkkk.
Luiz Alberto V. Alves
Analista Sênior Protheus
(12) 9 8256-5905

Proprietário Sites
www.masteradvpl.com.br
www.3lsystems.com.br

Curta o MasterAdvpl
www.facebook.com/MasterAdvpl
O administrador desabilitou o acesso público de escrita.

Re: String para Array 02 Out 2012 14:40 #6329

  • titosca
  • Avatar de titosca
  • OFFLINE
  • Membro Júnior
  • Postagens: 28
  • Karma: 0
E outra não sei para que inventar padrões. Utiliza o CSV e boa, nego gosta de reinventar a roda é foda.
O administrador desabilitou o acesso público de escrita.

Re: String para Array 02 Out 2012 14:37 #6326

  • lalberto
  • Avatar de lalberto
  • OFFLINE
  • Administrador
  • Ajudar à quem Precisa Faz Muito Bem !!!
  • Postagens: 4135
  • Thank you received: 594
  • Karma: 85
Isso mesmo, se os delimitadores do campo fossem por exemplo ; ai sim poderia trocar as , por BRANCO ai virava, como é que um cara desenvolve um sistema que me gera um padrão desses de arquivo texto ? kkkk brincadeira né.

O Pior que o Rodrigo falou com eles e eles disseram tipo se "vira" rsrs é fods né.

Vai precisar pegar a linha e montar um tratamento manualmente para identificar o campo valor e subtrair a virgula.
Luiz Alberto V. Alves
Analista Sênior Protheus
(12) 9 8256-5905

Proprietário Sites
www.masteradvpl.com.br
www.3lsystems.com.br

Curta o MasterAdvpl
www.facebook.com/MasterAdvpl
O administrador desabilitou o acesso público de escrita.

Re: String para Array 02 Out 2012 14:33 #6324

  • titosca
  • Avatar de titosca
  • OFFLINE
  • Membro Júnior
  • Postagens: 28
  • Karma: 0
É vi melhor agora. Esse arquivo tá fora de padrões totalmente. Vai ser trabalhoso tratar isso, tem que padronizar os delimitadores com caracteres que não estejam presentes nos valores.
O administrador desabilitou o acesso público de escrita.

Re: String para Array 02 Out 2012 14:25 #6323

  • lalberto
  • Avatar de lalberto
  • OFFLINE
  • Administrador
  • Ajudar à quem Precisa Faz Muito Bem !!!
  • Postagens: 4135
  • Thank you received: 594
  • Karma: 85
Então mas o problema é que a linha inteira tem virgulas, ou seja, vai trocar 6 por meia duzia, ele irá substituir também as virgulas que separam os campos.
Luiz Alberto V. Alves
Analista Sênior Protheus
(12) 9 8256-5905

Proprietário Sites
www.masteradvpl.com.br
www.3lsystems.com.br

Curta o MasterAdvpl
www.facebook.com/MasterAdvpl
O administrador desabilitou o acesso público de escrita.

Re: String para Array 02 Out 2012 14:17 #6322

  • titosca
  • Avatar de titosca
  • OFFLINE
  • Membro Júnior
  • Postagens: 28
  • Karma: 0
Acho que com a função StrTran (tdn.totvs.com/display/tec/StrTran) você consegue alterar as virgulas antes de transformar em array.

Tenta ai.
O administrador desabilitou o acesso público de escrita.

Re: String para Array 02 Out 2012 13:27 #6317

  • lalberto
  • Avatar de lalberto
  • OFFLINE
  • Administrador
  • Ajudar à quem Precisa Faz Muito Bem !!!
  • Postagens: 4135
  • Thank you received: 594
  • Karma: 85
Fala com eles se já que não podem tirar a virgula do valor, se poderiam substituir a separação dos campos por ; ao invés de virgula também.

Ai resolveria seu problema.

Abraços.
Luiz Alberto V. Alves
Analista Sênior Protheus
(12) 9 8256-5905

Proprietário Sites
www.masteradvpl.com.br
www.3lsystems.com.br

Curta o MasterAdvpl
www.facebook.com/MasterAdvpl
O administrador desabilitou o acesso público de escrita.

Re: String para Array 02 Out 2012 13:23 #6315

o grande detalhe, o arquivo é gerado/enviado pelo cliente e não conseguimos de maneira alguma fazer com que eles tirem a virgula do valor,infelizmente mudar a mascara tá praticamente impossível (como eles dizem, os interessados somos nós e nao eles)

criar a rotina, acho que será o jeito, achei que tivesse mais alguma função para isso.

caso eu consiga algo eu posto aqui, ou se alguem suber uma maneira simples, fico agradecido.

abraços
O administrador desabilitou o acesso público de escrita.
  • Página:
  • 1
  • 2
Tempo para a criação da página:3.147 segundos