Sintaxe de Nova Coluna e Nova Linha (FileWrite)

israeltandrade  

Oi pessoal! Meu robô deve criar um arquivo csv e eu estou tendo dificuldades para entender qual a lógica por trás das linhas e colunas.

Pelo que entendi, após uma vírgula, o campo preenche uma célular numa nova coluna e após o código "\r\n", vamos para uma nova linha.

O problema é que se você já avançou uma coluna, quando preencher algo na próxima linha você não retorna à primeira coluna, você prossegue da última em que escreveu. Como voltar à primeira coluna?

Meu código:

int h = FileOpen("Arquivo_CSV.csv",FILE_WRITE|FILE_ANSI|FILE_CSV,";");

if(h == INVALID_HANDLE)
        {
         Alert("Erro ao gerar arquivo CSV!");
         return;
        }

FileWrite(h,"1ª COLUNA E 1ª LINHA")", "2ª COLUNA NA 1ª LINHA",
          
	  "\r\n",

//--- Aqui está o problema (gostaria de voltar para a 1ª Coluna e depois ir para a 2ª):
          "2ª COLUNA NA 2ª LINHA", "3ª COLUNA NA 2ª LINHA"
          
	  );

FileClose(h);


Obrigado pela atenção, um abraço!

Flavio Javier Jarabeck  
israeltandrade:

Oi pessoal! Meu robô deve criar um arquivo csv e eu estou tendo dificuldades para entender qual a lógica por trás das linhas e colunas.

Pelo que entendi, após uma vírgula, o campo preenche uma célular numa nova coluna e após o código "\r\n", vamos para uma nova linha.

O problema é que se você já avançou uma coluna, quando preencher algo na próxima linha você não retorna à primeira coluna, você prossegue da última em que escreveu. Como voltar à primeira coluna?

Meu código:


Obrigado pela atenção, um abraço!

Você deve revisitar seus conceitos sobre arquivos texto,CSV,etc.

NÃO existem colunas. Apenas linhas e separadores de "colunas", que só serão entendidos pelo programa que irá decodificá-los.

É como um código-morse, o receptor precisa entender o padrão estabelecido pelo emissor. E a sequência é "para a frente" sempre. Dá até pra voltar com o ponteiro do arquivo para trás, mas sinceramente em se tratando de gravação de arquivos-texto, tentar manipular ponteiros indica falha de planejamento prévio...

Se quiser seguir à risca o padrão CSV:

https://en.wikipedia.org/wiki/Comma-separated_values

Do contrário, você pode inventar o seu... basta entender as 2 pontas...

;)

Comma-separated values - Wikipedia
Comma-separated values - Wikipedia
  • en.wikipedia.org
Comma-separated values Filename extension Internet media type Initial release Type of format Container for Standard A comma-separated values ( CSV ) file is a delimited text file that uses a comma to separate values. Each line of the file is a data record. Each record consists of one or more fields, separated by commas. The use of the comma as...
israeltandrade  
Flavio Jarabeck:

Você deve revisitar seus conceitos sobre arquivos texto,CSV,etc.

NÃO existem colunas. Apenas linhas e separadores de "colunas", que só serão entendidos pelo programa que irá decodificá-los.

É como um código-morse, o receptor precisa entender o padrão estabelecido pelo emissor. E a sequência é "para a frente" sempre. Dá até pra voltar com o ponteiro do arquivo para trás, mas sinceramente em se tratando de gravação de arquivos-texto, tentar manipular ponteiros indica falha de planejamento prévio...

Se quiser seguir à risca o padrão CSV:

https://en.wikipedia.org/wiki/Comma-separated_values

Do contrário, você pode inventar o seu... basta entender as 2 pontas...

;)

Então o caminho não está no própria função FileWrite e sim na sintaxe CSV, correto? Vou checar isso, obrigado.

israeltandrade  

RESOLVIDO!

Coisa simples. Basta eliminar a vírgula após "\r\n". Descobri ao editar o arquivo CSV num bloco de notas (ficava aparecendo uma vírgula antes de "nova linha")

Razão: