StarCLike » 03 июн 2013, 11:48
Есть некоторый текстовый файл в котором записаны: количество столбцов, количество строк и значения ячеек двух массивов (для дальнейшего перемножения).
Необходимо все эти данные считать и затем использовать в работе программы (перемножить матрицы).
Как лучше устроить такой файл для более удобного чтения? И как производить такое чтение используя WinAPI или встроенные функции MASM? Можно ли использовать ini файлы? И как их использовать на ассемблере?
Мне известен следующий метод чтения данных из файла:
Код: Выделить всё
mov ofn.Flags, OFN_FILEMUSTEXIST or \
OFN_PATHMUSTEXIST or OFN_LONGNAMES or\
OFN_EXPLORER or OFN_HIDEREADONLY
invoke GetOpenFileName, ADDR ofn
.if eax==TRUE
invoke CreateFile, ADDR buffer,\
GENERIC_READ or GENERIC_WRITE,\
FILE_SHARE_READ or FILE_SHARE_WRITE,\
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE,\
NULL
mov hFile, eax
invoke GlobalAlloc, GMEM_MOVEABLE or GMEM_ZEROINIT, MEMSIZE
mov hMemory, eax
invoke GlobalLock, hMemory
mov pMemory,eax
invoke ReadFile, hFile, pMemory, MEMSIZE-1, ADDR SizeReadWrite,NULL
invoke SendMessage, hwndEdit, WM_SETTEXT, NULL,pMemory
invoke CloseHandle, hFile
invoke GlobalUnlock, pMemory
invoke GlobalFree, hMemory
Но данный метод считывает все без разбора и выводит сразу в edit, мне же необходимо считать определенные данные в определенные переменные из раздела ".data".
Есть некоторый текстовый файл в котором записаны: количество столбцов, количество строк и значения ячеек двух массивов (для дальнейшего перемножения).
Необходимо все эти данные считать и затем использовать в работе программы (перемножить матрицы).
Как лучше устроить такой файл для более удобного чтения? И как производить такое чтение используя WinAPI или встроенные функции MASM? Можно ли использовать ini файлы? И как их использовать на ассемблере?
Мне известен следующий метод чтения данных из файла:
[code]mov ofn.Flags, OFN_FILEMUSTEXIST or \
OFN_PATHMUSTEXIST or OFN_LONGNAMES or\
OFN_EXPLORER or OFN_HIDEREADONLY
invoke GetOpenFileName, ADDR ofn
.if eax==TRUE
invoke CreateFile, ADDR buffer,\
GENERIC_READ or GENERIC_WRITE,\
FILE_SHARE_READ or FILE_SHARE_WRITE,\
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE,\
NULL
mov hFile, eax
invoke GlobalAlloc, GMEM_MOVEABLE or GMEM_ZEROINIT, MEMSIZE
mov hMemory, eax
invoke GlobalLock, hMemory
mov pMemory,eax
invoke ReadFile, hFile, pMemory, MEMSIZE-1, ADDR SizeReadWrite,NULL
invoke SendMessage, hwndEdit, WM_SETTEXT, NULL,pMemory
invoke CloseHandle, hFile
invoke GlobalUnlock, pMemory
invoke GlobalFree, hMemory[/code]
Но данный метод считывает все без разбора и выводит сразу в edit, мне же необходимо считать определенные данные в определенные переменные из раздела ".data".