szlagi Opublikowano 10 Maja 2007 Udostępnij Opublikowano 10 Maja 2007 witam!!! Dopiero zaczyna uczyć się c# i potrzebuje waszej pomocy. Mój problem polega na tym iż mam plik tekstowy postaci: 4 2 3 5 18 7 22 10 6 4 9 15 Liczby te są przykładowe. W pierwszej linijce zawsze bedą tylko trzy jakieś liczby (w związku z tym w tablicy muszą znajdować się trzy tablice). Określają one ile liczb bedzie w następnych trzech linijkach. Musze danymi z tego pliku wypełnic tablice tablic. Jednak nie mogę zrobić tego z klawiatury, tylko muszą one zostać wczytane z pliku. Bardzo proszę o waszą pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 10 Maja 2007 Filar Społeczności Udostępnij Opublikowano 10 Maja 2007 Można wiedzieć po co zakładasz drugi ten sam temat? Pisałem wyraźnie na maila, że jutro napiszę prawidłowy algorytm... Następnym razem jak zrobisz coś takiego, to będzie ostrzeżenie i wywalę temat. Tymczasem masz, napisałem (a za poprzednie algorytmy nawet mi nie podziękowałeś...): using System; using System.Collections.Generic; using System.Text; using System.IO; namespace Tablica { class Program { static void Main( string[] args ) { // Otwieramy plik do odczytu FileStream plik = new FileStream( "dane.txt", FileMode.Open ); StreamReader odczyt = new StreamReader( plik ); // Odczytujemy pierwszą linię (jako string) a następnie rozbijamy na tablicę przy użyciu metody Split i separatora ' ' string[] zakres = ( odczyt.ReadLine() ).Split( ' ' ); // Inicjalizujemy tablicę wielowymiarową typu poszarpana (jagged array) int[][] tablica = new int[zakres.Length][]; // Powtarzamy pętlę tyle razy ile jest liczb w pierwszym wierszu pliku for ( int i = 0; i < zakres.Length ; i ++ ) { // Konwertujemy liczbę z formatu tekstowego int k = int.Parse( zakres[i] ); // Tworzymy nową podtablicę o odpowiedniej wielkości tablica[i] = new int[ k ]; // Odczytujemy linię i natychmiast rozbijamy ją jak wcześniej pierwszą linię string[] liczby = ( odczyt.ReadLine() ).Split( ' ' ); // Powtarzamy tyle razy pętlę ile jest liczb (teoretycznie, ponieważ w pierwszej linii ktoś może nakłamać z liczbami) for ( int j = 0 ; j < k ; j++ ) { // Przypisujemy odpowiednią wartość tablica[i][j] = int.Parse( liczby[j] ); } } //Sprawdzamy prawidłowość powyższego algorytmu: for ( int i = 0 ; i < tablica.Length ; i++ ) { Console.WriteLine( String.Format( "Ilość liczb w wierszu {0}: {1}", i+1, tablica[i].Length ) ); string liczby = ""; foreach ( int k in tablica[i] ) { liczby += k + " "; } Console.WriteLine( liczby + "\n" ); } Console.WriteLine( "Zakończono odczyt, naciśnij jakiś klawisz..." ); Console.ReadKey(); } } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szlagi Opublikowano 10 Maja 2007 Autor Udostępnij Opublikowano 10 Maja 2007 Przepraszam że wcześniej nie podziekowałem, żeby nie było nie jestem jakimś tam chamem ani prostakiem, poprostu jakoś się nie złozyło. Bardzo doceniam twoją pomoc i dziekuję. A co do drugiego postu to założyłem go ponieważ sądziłem że skoro odpowiedziałeś na niego to nikt się już nim nie zainteresuje. A instrukcja ta jest mi bardzo potrzebna. Jeszcze raz wielkie dzięki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się