Jump to content

Recommended Posts

Posted

Boas,

Estou a programar em c# e iniciei-me na leitura de ficheiros. O ficheiro tem umas 2000 linhas e em cada uma, tenho que sacar 3 valores (double) separados por 2 vírgulas.

A minha ideia é passar caracter a caracter para uma string e, após encontrar 1 vírgula, fazer a conversao para double.

Acontece que não posso fazer isto:

TextReader tr = new StreamReader(fileName);

tr.ReadLine();

string aux_read,aux_copy;

aux_read=tr.ReadLine();

for(int j=0;j<aux_read.Length;j++){

aux_copy[j]=aux_read[j]; ->erro

(...)

}

Posted

Ok já sei. Vi este exemplo:

char[] charBuf = new char[1024]; // Example char array

string s = ""; // Example empty string

s = new string(charBuf); // Create new string passing charBuf into the constructor

Podem fechar. Desculpem.

Posted

tas a usar as maneiras mais trabalhosas e basicas de fazer as coisas numa linguage como o C#. se tas a usar essa linguagem usa funções mais apropriadas, como por exemplo expressões regulares e vais lendo linha a linha como já tens feito. n ha necessidade de percorreres 2000 caracteres, um a um...

Posted

A solução do Nazgulled é uma boa solução se optares por fazer tudo programaticamente.

Outra hipótese é usares um driver ODBC de texto e leres esse ficheiro como se fosse uma tabela, permitindo-te ler apenas os valores de cada "coluna"/posição que te interessam. Assim deixas todo o trabalho chato de leitura e manipulação do ficherio para o driver de ODBC.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Posted

O ficheiro tem este formato:

251000,370000,1264.44

251020,370000,1252.27

251040,370000,1239.42

(...)

Eu quero extrair estes valores e passá-los para uma matriz.

Os drivers ODBC de texto costumam ser flexiveis e permitir esse tipo de parametrização, ou seja, dizer que os campo são separados por , ou outro símbolo.  Daí ser fácil acedê-los como se fossem uma tabela.

Independentemente da forma como os lês, colocá-los na matriz é outra conversa.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

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
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.