Skocz do zawartości
Grela

Odczytywanie danych z pliku txt

Rekomendowane odpowiedzi

Potrzebuje sklecić jakoś linijke kodu, która odczytuje parametry a, b i c z pliku(są to liczby) i każde parametry w pliku to jedna linijka czyli np.

 

3 5 0

3 2 9

2 8 0

 

 

I odrazu wypisze mi je, próbowałem to jakoś napisać, ale nie działa.

 

Czy ktoś mógłby mnie jakoś nakierować, albo jakiś przykład podać?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

GML
file_text_readln(fileid) //Omija resztę linii i ustawia "kursor" na początku następnej.</span></span>

i to

GML
string_char_at(str,index) //Zwraca znak znajdujący się na pozycji index w string'u str.</span></span>

Dwie funkcje, które powinny cię nakierować.

 

Edit: Plus pętla for.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Dzięki, pamiętam jak na matmie nam nauczyciel pokazywał podobnie to nie przypominam sobie tych dwóch linijek ale dzięki.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Oh shit, to delphi xD

Nie zauważyłem, to jest kod do GameMaker'a.

Sory wielkie.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Eh no dobra, więc jak najbardziej aktualne.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

chociaz niepracuje s delfi ani z pascal to zasady pracy z file so bardzo podobne do pracy v prawie kazdym jezyku, tylko znadz sobie pravidlovy zapis (syntax). :)

nieviem jestli to ta tva syntax, ale warto tu zbadac.

 

-to co pisal @ALT jest dobre do txt file i da sie stosowac procedury.

 

-jezeli v file masz zavse 3 columny odseparovane znakiem space, to mozes uzyc tez binarnego odczytyvania z file.

v bin czytas byte po byte a to jest v takim przypadku korzystne, bo latvo napisac pentle bez vycinania stringow i analizy jakie one so.

 

mam nadzieje, ze chociaz trosecke cie nakierovalem.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Szczerze, to nie rozumiem z Twojego pierwszego posta. Nie wiem czy rozumieć to jako: a=350, b=329, c=280; czy jako: a=3, b=5, c=0 potem z następnej linijki a=3, b=2, c=9 itd.

Dawno nie pisałem w Pascalu, ale patrząc po jakiś swoich starych programach, to będzie to mniej więcej coś takiego:

(rozpatruje pierwszy przypadek, bo chyba o to Ci chodziło)

var
t: text;
a,b,c, err: integer;
tmp: string;

procedure usunspacje;
var 
i: integer;
begin
for i:=1 to length(tmp) do
begin
if tmp[i]=32 then 
begin
delete(tmp,i,1); {32 to znak spacji, zmniejszamy licznik i, zeby odczytal poprawnie nastepny znak}
i:=i-1;
end;
end;
end;

begin
assign(t,'nazwapliku'); {wczytanie pliku do zmiennej t}
reset(t); {"uruchomienie" pliku}
{normalnie po ludzku dalbym tu petle for, ale skoro rozrozniasz na zmienne a,b,c to robimy krok po kroku}
readln(t,tmp); {odczytanie linii}
usunspacje;
val(tmp, a, err); {konwertuje stringa na liczbe}
readln(t,tmp);
usunspacje;
val(tmp, b, err);
readln(t,tmp);
usunspacje;
val(tmp, c, str);
close(t); {zamkniecie pliku}
end.

 

Jeżeli drugi przypadek, to zrobiłbym to obiektowo. Klasa wiersz i tam procedura rozdzielająca na a, b i c. Odczyt na podobnej zasadzie, tylko tym razem uruchamia się w pętli i z kazdym wierszem tworzymy nowy obiekt wiersz w tablicy tych obiektow.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×