czytanie linijek z pliku

 
Napisz nowy tematOdpowiedz do tematu    Forum programistyczne Programmers Zone Strona Główna -> Assembler
Autor Wiadomość
Wojtek.wk
~user




Dołączył: 20 Paź 2008
Posty: 73
Skąd: Katowice

PostWysłany: 22-11-09 01:47 Zacytuj zaznaczone Odpowiedz z cytatem

Witam! Mam pytanie - czy jest jakaś możliwość, żeby czytać z pliku linijkę po linijce?
Problem mam następujący: mam dwa pliki i chciałbym je scalić w taki sposób, że najpierw czytam pierwszą linijkę z pierwszego, potem pierwszą z drugiego, potem drugą linijkę z pierwszego i drugą z drugiego itd...
Z góry dzięki za wszelką pomoc!
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
michalmet
#Moderator




Dołączył: 11 Gru 2004
Posty: 2312
Skąd: Somewhere in Poland....
Pomógł: 27

PostWysłany: 22-11-09 09:47 Zacytuj zaznaczone Odpowiedz z cytatem

Najprościej będzie użyć funkcji API z biblioteki windows.inc. To będą funkcje CreateFile oraz ReadFile i WriteFile. Wszystko jest dokładnie tak samo, jakbyś pisał w C (poza składnią Razz)

CreateFile z MSDN


Użytkownik otrzymał punkt pomocy za ten post.

_________________
Miejsce na Twoją reklamę :]

Posadź drzewo!

Może i ostatnio rzadziej bywam, ale wciąż zaglądam Wink
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
Wojtek.wk
~user




Dołączył: 20 Paź 2008
Posty: 73
Skąd: Katowice

PostWysłany: 22-11-09 14:49 Zacytuj zaznaczone Odpowiedz z cytatem

Tylko, że ja to muszę pisać w czystym ASM, to jest zadanie i musi być tak pisane Smile
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
timpler
+Przyjaciel P-ZONE




Dołączył: 13 Mar 2008
Posty: 762
Skąd: Wrocław
Pomógł: 51

PostWysłany: 22-11-09 19:01 Zacytuj zaznaczone Odpowiedz z cytatem

zainteresuj się przerwaniem int 21h (jesli piszesz pod DOSem / Windowsem) i jego funkcja 3Fh
EDIT: Tutaj masz opis tej funkcji:
http://spike.scu.edu.au/~barry/interrupts.html#ah3f

Na linuxie masz przerwanie int 80h, z tymze funkcji do pracy na plikach (tu czytania) ci nie powiem bo poprostu nie wiem Smile

EDIT: tutaj masz sporo informacji o int 80h (linux):
http://int80h.org/

EDIT: Teraz od ciebie zalezy jak uzyjesz tych funkcji. Pozostanie ci problem odczytu dokladnie jednej linii, poniewaz te funkcje odczytuja X bajtow, wiec nie rozrozniaja linii.
Ja ci polecam wczytywac w petli po jednym bajcie (nie optymalne rozwiazanie), wczytywac bajta do bufora (na kolejny index) i jesli natrafisz na znak \r lub \n ( 0Dh / 0Ah )
wtedy wiesz ze masz nowa linie, wiec doklejasz NULLa (ew. inny terminator) i konczysz te petle (w buforze masz dokladnie jedna linie).


Użytkownik otrzymał punkt pomocy za ten post.

_________________
Pozdro.

Programista to osoba wytrwała psychicznie, dążąca do swojego celu i nie poddająca się! Nie każdy może nazywać się programistą, ja na szczęście mogę...

Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora Numer GG
Wyświetl posty z ostatnich:   
Napisz nowy tematOdpowiedz do tematu    Forum programistyczne Programmers Zone Strona Główna -> Assembler Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

Mapa
Powered by phpBB © 2001, 2005 phpBB Group

 Polecane strony