Ir para conteúdo
  • 0

Coluna com mesmo caractere do Delimitador


brnpessoa

Pergunta

  • Membros

Estou importando um arquivo Csv que está delimitado pelo caractere "@", porém uma das colunas desse arquivo contém dados de e-mail e está delimitando.

É possível fazer com que essa única coluna não seja delimitada?

 

Ex.:

 

let
    Fonte = Csv.Document(File.Contents("NomeDoArquivo.txt"),[Delimiter="@", Columns=131, Encoding=1252, QuoteStyle=QuoteStyle.None]),

...

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
  • Membros

@brnpessoa retirar no momento da importação não sei te dizer, porém caso isso esteja te atrapalhando.

Pq não importa o arquivo dessa forma mesmo, após ele separar o "E-MAIL" em 2 colunas devido ao "@", você realiza uma mesclagem das colunas separadas retornando-as em 1 coluna apenas com e-mail completo e apagando as que estavam separadas.

Att.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Boa Noite, @brnpessoa!

 

Você poderia fornecer uma amostra de dados?

Se você olhar a documentação, um dos argumentos do Csv.Document é o CsvStyle, onde se define como ele deve tratar as aspas.

Por padrão, os softwares, quando vão exportar o CSV, verificam se em algum campo existe o delimitador e acabam colocando aspas para indicar que ali corresponde a uma cadeia de texto.
Ex.:
Nome@ Login
Bruno@ "@brnpessoa"

Quando não se define, temos que as aspas só são relevantes imediatamente após o delimitador.

Se exportar como no exemplo, teríamos que usar o CsvStyle.QuoteAlways para considerar todas as aspas.

 

Espero que seja isso e resolva seu problema.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

@Vitor Peralva

O arquivo original .txt não está com aspas.

 

Abaixo um exemplo do erro que está ocorrendo. Algumas colunas são campos livres e acabam sendo preenchidas de forma indevida com o endereço de e-mail.

Com isso,  as colunas posteriores acabam sobrepostas pelo valor que está após o "@" do e-mail (que não é um delimitador).

Existe alguma possibilidade de quebrar as colunas por largura fixa (como no excel) ou algo parecido?

 

image.png.b64095b4b13297af56e996c501114ded.png

image.png.580f60b19c836d6774059443c88107ad.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
Em 18/01/2023 em 14:35, brnpessoa disse:

@Vitor Peralva

O arquivo original .txt não está com aspas.

 

Abaixo um exemplo do erro que está ocorrendo. Algumas colunas são campos livres e acabam sendo preenchidas de forma indevida com o endereço de e-mail.

Com isso,  as colunas posteriores acabam sobrepostas pelo valor que está após o "@" do e-mail (que não é um delimitador).

Existe alguma possibilidade de quebrar as colunas por largura fixa (como no excel) ou algo parecido?

 

image.png.b64095b4b13297af56e996c501114ded.png

image.png.580f60b19c836d6774059443c88107ad.png

 

Bom, para este casos, então, o ideal seria o seguinte:
1) Verificar se existe a possibilidade de se gerar a fonte sem o delimitador arroba.

Quem o escolheu não agiu de forma preventiva.

2) Se não houver a possibilidade, você pode:

a) Importar tudo como uma única coluna;
b) Conte quantas colunas você tem antes e depois de onde está ocorrendo o problema;
c) Adicione uma coluna extraindo texto antes do delimitador e no avançado, você pede para ignorar n -1 das colunas antes do problema;
d) Adicione uma coluna extraindo entre delimitadores e siga a mesma lógica para ignora a quantidade de delimitadores suficientes para isolar esta coluna de escrita livre.
e) Adicione uma coluna extraindo texto após o delimitador e no avançado, você pede para ignorar n -1 das colunas após do problema, do final para o início;
f) Divida as colunas que ainda possuem o delimitador (antes e depois, a entre já está com a coluna isolada);
g) Continue as suas transformações.

 

Espero que tenha ajudado.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...