witam wszystkich,
Raczej jestem początkującym programistą wiec problem przed którym który mnie zatrzymał może się dla niektórych wydawać banalny.
Do rzeczy - chcę stworzyć własna bibliotekę zajmującą się odczytywaniem plików LAS ( ASCII ) opieram się gółwnie na StreamReader
Moj Reader :
public class LasReader : IDisposable
{
private static string path = null;
public static string Path
{
get { return path; }
set { path = value; }
}
public LasReader()
{
path = null;
}
public LasReader(string inPath)
{
path = inPath;
}
public string ReadLine()
{
if (path == null)
return null;
if (File.Exists(path))
{
StreamReader sr = new StreamReader(path, System.Text.Encoding.Default, true);
string line;
while ((line = sr.ReadLine()) != null)
{
//line = line.Trim();
//line.Replace(",", ".");
return line;
}
return null;
sr.Close();
}
return null;
}
public void Dispose()
{
Dispose();
// This object will be cleaned up by the Dispose method.
// Therefore, you should call GC.SupressFinalize to
// take this object off the finalization queue
// and prevent finalization code for this object
// from executing a second time.
GC.SuppressFinalize(this);
}
}
problem w tym iż w przykładowym wywołaniu
using (LasReader lsr = new LasReader(asciiFilePath))
{
string singleLine;
uint lineCounter = 0;
sPoint tempPoint;
while ((singleLine = lsr.ReadLine()) != null)
{
if (singleLine.Length == 0)
continue;
var linetemp = singleLine.Split(" ".ToCharArray());
// dalsze przetwarzanie danych
}
}
to co otrzymuje to zawsze pierwsza linia tego pliku - nawet mnie to nie dziwi. Zapewne za każdym razem odpalana jest nowa instancja klasy i plik czytany jest od początku. Problem w tym ze nie wiem jak to rozwiązać . to co chciałbym otrzymać na wyjściu to linia po linii którą mógłbym na bieŻąco (Boże, widzisz takie błędy i nie grzmisz) konwertować do int-a i dalej przetwarzać.
jeśli to będzie pomocne można założyć ze każda linia posiada taką samą liczbę zmiennych.