Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Slava-hacker32
7 / 7 / 2
Регистрация: 16.11.2011
Сообщений: 251
1

Количество строк в файле

07.02.2012, 01:17. Просмотров 1492. Ответов 2
Метки нет (Все метки)

Нужно вывести на экран строки файла. И посчитать их количество.
Так вот содержимое файла я вывожу а как посчитать количество строк?
FHndl это дескриптор.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
.model small
.data
Filename db "J:\TASM\File.txt", 0
errmes db "Error",'$'
Buffer db "$$$$$"
FHndl dw 0
.code
start:
 
    mov ax, @data
    mov ds, ax
    mov es, ax
 
    mov ah, 3dh
    mov al, 0
    lea dx, Filename
    int 21h
    jc error
    mov FHndl, ax
 
LP:
    mov ah, 3Fh
    lea dx, Buffer
    mov cx, 1
    mov bx, FHndl
    int 21h
    jc error
    cmp ax, cx
    jne EOF
    push dx
    mov dl, Buffer
    mov ah, 02h
    int 21h
    pop dx
    jmp LP
EOF:
    mov bx, FHndl
    mov ah, 3Eh
    int 21h
    jnc quit
 
error:
    mov ah, 9h
    mov dx, OFFSET errmes
    int 21h
 
    
quit:
mov ax, 4c00h
int 21h
end start
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2012, 01:17
Ответы с готовыми решениями:

Подсчитать количество не пустых строк в файле
Доброго времени суток. Написал программу, которая подсчитывает количество не пустых строк в файле и...

Определить количество слов в файле
Помогите:) Разработать программу для обработки файлов. Нужно определить количество слов в файле....

Подсчитать количество цифр в файле и вывести на экран
Очень нужна помощь) Задание такое: Подсчитать количество цифр в файле и вывести на экран

Посчитать количество цифр в файле и вывести на экран
Вот моя программа ; Задание: ;посчитать количество цифр в файле и вывести на экран include...

Подсчитать количество символов в файле и вывести на экран - откорректировать код
Очень нужна помощь) Задание такое: Подсчитать количество символов в файле и вывести на экран....

2
Mikl___
Автор FAQ
13381 / 6382 / 630
Регистрация: 11.11.2010
Сообщений: 11,547
07.02.2012, 04:13 2
Slava-hacker32, вывести содержимое текстового файла в буфер и в этом буфере найти и подсчитать символы 0Ah, количество этих символов + 1 = количество строк в файле
0
SAq
0 / 0 / 0
Регистрация: 08.04.2014
Сообщений: 58
09.02.2015, 12:17 3
Как раз заканчиваю процедуру загрузки файла с сообщениями для процедуры записи логов.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
; #################################################
LoadLogMessagesFile Proc
 
.CODE
  ; ------------------------------------------
  ; Читаем файл с сообщениями для логов
  ; ------------------------------------------
  invoke    CreateFile, ADDR nLogMessagesFile,
                        GENERIC_READ,
                        NULL,
                        NULL,
                        OPEN_EXISTING,
                        FILE_ATTRIBUTE_NORMAL,
                        NULL
 
  mov       hLogMessagesFile, eax
  invoke    GetFileSize, hLogMessagesFile, NULL
  mov       sLogMessagesFile, eax
 
  ; ------------------------------------------
  ; Выдемяем память для сообщений
  ; ------------------------------------------
  invoke    HeapAlloc, hHeap, NULL, sLogMessagesFile
  mov       pLogMessages, eax
 
  invoke        ReadFile, hLogMessagesFile,\
                      pLogMessages,\
                      sLogMessagesFile,\
                      ADDR RealReadWrite,\
                      NULL
 
  invoke    CloseHandle, hLogMessagesFile
 
  ; Вычисляем количество строк
  mov       esi, pLogMessages           ; Указатель на загруженные данные
  xor       ebx, ebx                    ; Обнуляем счетчик строк
  mov       ecx, sLogMessagesFile       ; Размер загруженных данных
  cld
 
LoadLogMessagesFileLoop01:
  lodsb
  cmp       al, 0Ah                     ; Проверяем на перевод строки
  je        LoadLogMessagesFilePlus01   ; Истинно - идем плюсовать счетчик
  loop      LoadLogMessagesFileLoop01   ; Ложно - идем дальше
  jmp       LoadLogMessagesFileComplete01
 
LoadLogMessagesFilePlus01:
  inc       ebx                         ; Увеличиваем счетчик на 1
  loop      LoadLogMessagesFileLoop01   ; Если данные не кончились - продолжаем
 
LoadLogMessagesFileComplete01:
  mov       nLogMessages, ebx           ; в EBX количество строк
 
  xor       ebx, ebx                    ; Выходной код процедуры "Нет ошибки"
  ret
 
LoadLogMessagesFile EndP
Берите, мож кому понадобится.
ЗЫ. Проверку на ошибки сделаете сами.
ЗЫЫ. Вызов GetProcessHeap делал перед вызовом WinMain.

Assembler
1
2
  invoke    GetProcessHeap
  mov       hHeap, eax
Читаемый файл. Последнюю строку можно оформить так, например. ))

Код
Radium engine started
Setup Core
Setup Log process...
    -> create file
    -> create procedure
    -> save process parameters
    -> verify...
    -> ok
< end of file. --- ТОВАРИЩИ МОДОДЕЛЫ! Это обязательная строка в любом файле! Строку НЕ переводить!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2015, 12:17

[EMU8086] Количество строк матрицы, где хотя бы один элемент равен C и несколько элементов этих строк равны D
Определить числа строк матрицы R , где хотя бы один элемент равен c и несколько элементов этих...

Найти количество определенных символов в файле
Столкнулся с такой проблемой, нужно открыть файл, прочитать его в буфер. В результате работы...

В текстовом файле подсчитать количество вхождений каждого символа
В написании проги на ассемблере, суть общения на форуме хотелось бы самому с вашими подсказками...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru