Ir para conteúdo
  • 0

Coluna com mesmo caractere do Delimitador


brnpessoa

Pergunta

  • Alunos

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

6 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
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

  • 0
  • Alunos

@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
  • Alunos

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
  • Alunos

@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

@brnpessoa

Olá tudo bem?

Já resolveu ou ainda está com problemas?

Pode acontecer de você receber uma resposta que não é 100% do que você esperava. Mesmo assim, se ela o ajudou de alguma forma para que você mesmo conseguisse chegar à solução, conte como você fez isso e marque como a melhor resposta.

 

 

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...