Я пытаюсь записать в файл через консоль, используя ReadString
, который сохраняет в buffer
, который будет использоваться для вызова WriteToFile
. При этом текст записывается правильно в правильном порядке, но также записываются оставшиеся пробелы.
ie. 4-символьное слово и 46 пробелов в предположении SIZEOF buffer
= 50
Как бы мне обойти это и написать текст без пробелов и разделителя? Я также собираюсь вызывать readfromfile
и go через слова по одному и проверять, соответствуют ли они другому слову, используя str_compare
.
Я пытался использовать Str_trim
в буфере, но не имел удача
Код ниже
include Irvine32.inc
Include macros.inc
.386
.model flat,stdcall
.stack 4096
ExitProcess proto,dwExitCode:dword
BUFFER_SIZE = 50
.data
filename BYTE 80 DUP(?)
fileHandle HANDLE ?
buffer BYTE BUFFER_SIZE DUP(?)
char BYTE ' '
.code
main proc
; create file to write to
mWrite "Enter filename: "
mov edx, OFFSET filename
mov ecx, SIZEOF filename
call ReadString
mov edx, OFFSET filename
call CreateOutputFile
mov fileHandle, eax
; write to output file
mov edx, OFFSET buffer
mov ecx, SIZEOF buffer
mWrite "Enter student identification number: "
call ReadString
INVOKE Str_trim, ADDR buffer, char
mov eax, fileHandle
mov edx, OFFSET buffer
mov ecx, SIZEOF buffer
call WriteToFile
mov edx, OFFSET buffer
mov ecx, SIZEOF buffer
mWrite "Enter student first name and lastname: "
call ReadString
INVOKE Str_trim, ADDR buffer, char
mov eax, fileHandle
mov edx, OFFSET buffer
mov ecx, SIZEOF buffer
call WriteToFile
mov edx, OFFSET buffer
mov ecx, SIZEOF buffer
mWrite "Enter student date of birth: "
call ReadString
INVOKE Str_trim, ADDR buffer, char
mov eax, fileHandle
mov edx, OFFSET buffer
mov ecx, SIZEOF buffer
call WriteToFile
invoke ExitProcess,0
main endp
end main
Если, возможно, я не имею никакого смысла вообще, я включил проблему, над которой я работаю
Напишите программу, которая создает новый текстовый файл. Запросите у пользователя идентификационный номер студента, фамилию, имя и дату рождения. Запишите эту информацию в файл. Таким же образом введите 10 записей и закройте файл.
Попросите пользователя ввести имя, фамилию и дату рождения. Основываясь на этих входных данных, найдите текстовый файл и напечатайте «Match», если входная запись существует, и напечатайте «NotFound», если входная запись не существует.