Forum AmigaOne Zone
https://forum.amigaone.pl/

Wczytywanie liczby z pliku
https://forum.amigaone.pl/programowanie-f13/wczytywanie-liczby-z-pliku-t973.html
Strona 1 z 1

Autor:  Mufa [ poniedziałek, 13 mar 2017, 19:40 ]
Tytuł:  Wczytywanie liczby z pliku

Jako że programista ze mnie żaden, to mam takie lamerskie pytanko, chodzi mi o wczytanie wartości zapisanej w pliku tekstowym.

Normalnie w Hollywood gdy chce się dodać do zera jeden wpisuje się coś takiego:

Kod:
wynik = 0
wynik = Add(wynik, 1)


No i uzyskujemy sumę 1 :D

Teraz chciałbym też uzyskać sumę 1, tyle że nie chcę jej wpisywać manualnie, a chcę ją pobrać z pliku tekstowego. No więc mam plik tekstowy, zawierający jeden znak, cyfrę "1", zapisany jako ram:1.txt Coś takiego jak poniżej nie działa:

Kod:
wynik = 0
wynik = OpenFile(1,"ram:1.txt")

Autor:  Hextreme [ wtorek, 14 mar 2017, 08:07 ]
Tytuł:  Re: Wczytywanie liczby z pliku

Poczytałem manual do Hollywoodu, bo nigdy nie miałem z nim styczności.

Wygląda na to, że można to zapisać w następujący sposób:
Kod:
OpenFile(1, "RAM:1.txt") ; Otwieramy plik RAM:1.txt i przypisujemy do identyfikatora 1
ciag$ = ReadString(1, 1) ; Pobieramy jednoznakowy ciąg z pliku
liczba = ToNumber(ciag$) ; Konwertujemy ciąg na liczbę
wynik = 0
wynik = Add(wynik, liczba)
CloseFile(1)

Jeśli liczba, którą chcesz wczytać jest dłuższa niż jeden znak to trzeba zmodyfikować linijkę zawierającą ReadString().

Autor:  Mufa [ wtorek, 14 mar 2017, 09:19 ]
Tytuł:  Re: Wczytywanie liczby z pliku

Dziękuję, wrócę z pracy to sprawdzę czy metoda działa.

Edit:
Działa jak trzeba, jeszcze raz dzięki :ok:

Autor:  Mufa [ poniedziałek, 27 mar 2017, 15:07 ]
Tytuł:  Re: Wczytywanie liczby z pliku

Tak jeszcze dopytam przy okazji, bo choć wczytywanie liczby z pliku dużo mi pomogło i w zasadzie szkielet projektu, który sobie założyłem działa jak trzeba, to mógłbym go lekko usprawnić. W tym celu potrzebuję jednak działania w drugą stronę. Czyli zamiast odczytu danej wartości z pliku tekstowego, chciałbym ją tam zapisać. Przykładowo plik 1.txt zawiera w sobie jeden znak "0" a ja chciałbym go zmienić na "1".

Hextreme, dasz radę podać przepis jak to zrobić w Hollywood :?:

Autor:  Hextreme [ czwartek, 30 mar 2017, 14:50 ]
Tytuł:  Re: Wczytywanie liczby z pliku

Mufa napisał(a):
Hextreme, dasz radę podać przepis jak to zrobić w Hollywood :?:

Musiałbym jeszcze raz spojrzeć do instrukcji w necie. Ja sam nie widziałem programu Hollywood na oczy. Pomogłem wcześniej, bo dość łatwo przyswajam wiedzę z zakresu języków programowania.

Mam nadzieję, że po ostatnim grupowym zakupie Hollywood grono osób, które będą mogły Ci pomóc w zakresie pisania w Hollywood się znacznie powiększy. :)

Może spróbuję podpowiedzieć. Myślę, że dalej sobie poradzisz.
Wczytanie liczby z pliku już masz. Zatem zastosuj tę procedurę do odczytania liczby z pliku 1.txt.

Następnie zwiększ liczbę o 1, czyli dodaj jedynkę do odpowiedniej zmiennej.

Na koniec przekonwertuj liczbę na ciąg i zapisz do pliku.

Jeśli jednak będziesz miał dalej problem, to daj znać.

Autor:  Mufa [ czwartek, 30 mar 2017, 18:46 ]
Tytuł:  Re: Wczytywanie liczby z pliku

Wiem że programista sobie taką dokumentację łatwo przyswaja, dlatego pytam Ciebie, bo dla "nie programisty" to niestety te 900 stron dokumentacji to w większości czarna magia.

Piszesz o przekonwertowaniu na ciąg, czyli zamiast Readstring (1,1) miałbym wklepać Savestring (1,1) a potem coś w stylu save to Ram:1.txt :?:

Autor:  Hextreme [ czwartek, 30 mar 2017, 19:32 ]
Tytuł:  Re: Wczytywanie liczby z pliku

Mufa napisał(a):
Wiem że programista sobie taką dokumentację łatwo przyswaja, dlatego pytam Ciebie, bo dla "nie programisty" to niestety te 900 stron dokumentacji to w większości czarna magia.

Piszesz o przekonwertowaniu na ciąg, czyli zamiast Readstring (1,1) miałbym wklepać Savestring (1,1) a potem coś w stylu save to Ram:1.txt :?:

Zauważ, że polecenie:
Kod:
liczba = ToNumber(ciag$)

konwertuje ciąg tekstowy do liczby.

Analogicznie funkcja
Kod:
ciag$ = ToString(liczba)

przekonwertuje liczbę na ciąg tekstowy.

Z kolei
Kod:
WriteString(1, ciag$)

zapisuje ciąg tekstowy ciag$ do pliku o numerze 1.

Jeszcze pozostaje otwarcie pliku z trybem do zapisu:
Kod:
OpenFile(1, "RAM:1.txt", #MODE_WRITE)

Zbierając to teraz do kupy. Najpierw trzeba wczytać liczbę z pliku. Kopiuję kod z wcześniejszego postu:

Kod:
OpenFile(1, "RAM:1.txt") ; Otwieramy plik RAM:1.txt i przypisujemy do identyfikatora 1
ciag$ = ReadString(1, 1) ; Pobieramy jednoznakowy ciąg z pliku
liczba = ToNumber(ciag$) ; Konwertujemy ciąg na liczbę
wynik = 0
wynik = Add(wynik, liczba)
CloseFile(1)

W tym momencie w zmiennej wynik jest liczba (cyfra) wczytana z pliku RAM:1.txt.
Musimy dodać jeden, przekonwertować z powrotem do ciągu, otworzyć plik do zapisu i zapisać ciąg:
Kod:
wynik = Add(wynik, 1)
ciag$ = ToString(wynik)
OpenFile(1, "RAM:1.txt", #MODE_WRITE)
WriteString(1, ciag$)
CloseFile(1)

Autor:  Mufa [ poniedziałek, 3 kwi 2017, 17:10 ]
Tytuł:  Re: Wczytywanie liczby z pliku

Kod działa jak trzeba :ok:

Kolejny raz dziękuję za pomoc :)

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/