Forum AmigaOne Zone

Forum użytkowników Amigi i nie tylko
Teraz jest czwartek, 26 gru 2024, 11:44

Strefa czasowa: UTC + 1




Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: poniedziałek, 13 mar 2017, 19:40 
Offline
Administrator
Administrator
Avatar użytkownika

Dołączył(a): poniedziałek, 16 sty 2012, 15:14
Posty: 4760
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")


Udostępnij dla FacebookUdostępnij dla Twitter
Góra
 Zobacz profil  
Cytuj  
PostNapisane: wtorek, 14 mar 2017, 08:07 
Offline
Elitarny forumowicz
Elitarny forumowicz
Avatar użytkownika

Dołączył(a): piątek, 20 sty 2012, 05:09
Posty: 566
Lokalizacja: Warszawa
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().

_________________
Robert "Hextreme" Szacki - Gear Works software


Góra
 Zobacz profil  
Cytuj  
PostNapisane: wtorek, 14 mar 2017, 09:19 
Offline
Administrator
Administrator
Avatar użytkownika

Dołączył(a): poniedziałek, 16 sty 2012, 15:14
Posty: 4760
Dziękuję, wrócę z pracy to sprawdzę czy metoda działa.

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


Góra
 Zobacz profil  
Cytuj  
PostNapisane: poniedziałek, 27 mar 2017, 15:07 
Offline
Administrator
Administrator
Avatar użytkownika

Dołączył(a): poniedziałek, 16 sty 2012, 15:14
Posty: 4760
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 :?:


Góra
 Zobacz profil  
Cytuj  
PostNapisane: czwartek, 30 mar 2017, 14:50 
Offline
Elitarny forumowicz
Elitarny forumowicz
Avatar użytkownika

Dołączył(a): piątek, 20 sty 2012, 05:09
Posty: 566
Lokalizacja: Warszawa
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ć.

_________________
Robert "Hextreme" Szacki - Gear Works software


Góra
 Zobacz profil  
Cytuj  
PostNapisane: czwartek, 30 mar 2017, 18:46 
Offline
Administrator
Administrator
Avatar użytkownika

Dołączył(a): poniedziałek, 16 sty 2012, 15:14
Posty: 4760
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 :?:


Góra
 Zobacz profil  
Cytuj  
PostNapisane: czwartek, 30 mar 2017, 19:32 
Offline
Elitarny forumowicz
Elitarny forumowicz
Avatar użytkownika

Dołączył(a): piątek, 20 sty 2012, 05:09
Posty: 566
Lokalizacja: Warszawa
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)

_________________
Robert "Hextreme" Szacki - Gear Works software


Góra
 Zobacz profil  
Cytuj  
PostNapisane: poniedziałek, 3 kwi 2017, 17:10 
Offline
Administrator
Administrator
Avatar użytkownika

Dołączył(a): poniedziałek, 16 sty 2012, 15:14
Posty: 4760
Kod działa jak trzeba :ok:

Kolejny raz dziękuję za pomoc :)


Góra
 Zobacz profil  
Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Powered by phpBB® Forum Software © phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL
phpBB SEO