Witam. Szukałem po różnych forach i stronach internetowych, ale nigdzie nie mogłem znaleźć odpowiedzi na moje pytania.
Aktualnie na zajęciach mamy aproksymację funkcji w programie VisualStudio. Prowadzący kazał nam pobrać współrzędne punktów z pliku tekstowego (żeby np przygotować program do obsługi wyników pomiarów). W jednym wierszu pliku tekstowego maja być kolejne punkty X oraz Y oddzielone tabulatorem lub spacją. Tego właśnie dotyczy mój problem. Jak odczytać kolejne X i Y oddzielone tabulatorem z pliku tekstowego i wpisać je po kolei do dwóch tablic? Potrafię odczytać kolejne linie natomiast nie wiem jak poradzić sobie z rozdzieleniem linii na kolumny i kolejno je wczytać.Do odczytania danych z pliku użyłem klasy OpenFileDialog.
Drugi problem dotyczy kilkukrotnego wciśnięcia przycisku. Otóż za pomocą numericUpDown mamy wybrać stopień wielomianu i narysować wykres właśnie tego rzędu. Chciałbym wczytać plik tylko raz przy pierwszym naciśnięciu przycisku i zachować go, a nie wczytywać do na nowo przy każdej zmianie stopnia wielomianu i ponownym naciśnięciu przycisku. Czy jest to możliwe w tej metodzie, czy muszę wczytać go w inny sposób? Może łatwiej będzie to zrealizować oknem openFileDIalog z przybornika programu?
Aby lepiej zobrazować to o co mi chodzi wrzucam fragment kodu oraz załącznik z wycinkiem okna programu.
int licznik = 0;
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = String.Format("Plik tekstowy (*.txt)|*.txt;");
if(dialog.ShowDialog()==System.Windows.Forms.DialogResult.OK)
{
string plik = dialog.FileName;
label1.Text = plik;
if (label1.Text != "Nie wybrano pliku")
{
//tu chciałbym aby był cały czas wczytywany ten sam plik;
foreach (string pelnaLinia in File.ReadLines(plik))
{
if (pelnaLinia != String.Empty) licznik++;
}
double[] linia = new double[licznik];
for (int i = 0; i < licznik; i++)
{
linia[i] = Convert.ToDouble(File.ReadLines(plik).Skip(i).Take(1).First());
}
}
}
Z góry dziękuję za pomoc.
Pozdrawiam.
- form.PNG (16 KB) - ściągnięć: 102