Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.96
None_13
0 / 0 / 0
Регистрация: 30.08.2009
Сообщений: 24
#1

Запись в сектора на floppy-диске, и чтение с этих секторов - C++

19.10.2006, 21:52. Просмотров 2778. Ответов 5
Метки нет (Все метки)

Здраствуйте.
Меня интерисует Функция на Си чтоби записывать данные (строку, или часть отдельного файла) в отдельный сектор на флопи диске, и чтение с этого сектора.

Вобщем на флоп надо записать файл(например текстовый), в различные сектора, так чтоб система его не видела. но при помощи програмы его можно было прочитать.
Програма на обычном Си.

Подскажите пожалуйста Функции, для реализации задачи.
Зарание благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2006, 21:52     Запись в сектора на floppy-диске, и чтение с этих секторов
Посмотрите здесь:

Запись и чтение из файла C++
C++ Чтение/запись
C++ запись\чтение из файла
C++ Чтение и запись в файл
Чтение и запись C++
Запись и чтение из файла C++
C++ Задан файл из целых чисел со знаком, разделенных пробелом. Произвести чтение этих чисел в обратном порядке, не читая предыдущие.
[Файлы] Запись-чтение-запись. Почему не прокатывает? C++
C++ Чтение и запись в файл
Чтение из файла и запись C++
C++ Поменять местами элементы верхнего сектора матрицы с элементами правого сектора второй матрицы и наоборот
Чтение из файла определённого места и сортировка данных исходя из этих данных C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
2508 / 1730 / 229
Регистрация: 08.06.2007
Сообщений: 6,787
Записей в блоге: 4
20.10.2006, 00:47     Запись в сектора на floppy-диске, и чтение с этих секторов #2
Не знаю, можно ли это сделать под Windows. Но на DOS когда-то делал. Вот начало моего модуля для Turbo C
Код
#include <stdio.h>
#include <conio.h>
#include <io.h>
#include <fcntl.h>
#include <sysstat.h>
#ifndef __LARGE__
#error LARGE model needed
#endif
#define BUFSIZE 512*18
unsigned char buf[BUFSIZE];
unsigned char disk=0;
int hf;
#pragma inline
typedef unsigned char byte;
int ReadAbsDisk(int disk, int cyl, int head, int sec, int num, byte *buf) {
 int r=0;
 asm {
  MOV  DL,byte ptr disk
  MOV  DH,byte ptr head
  MOV  CL,byte ptr sec
  AND  CL,00111111b
  MOV  AX,cyl
  MOV  CH,AL
  AND  AX,0000001100000000b
  SHR  AX,1
  SHR  AX,1
  OR   CL,AL
  LES  BX,buf
  MOV  AL,byte ptr num
  MOV  AH,2;
  INT  19
  MOV  byte ptr r,AH
 }
 return r;
}
int WriteAbsDisk(int disk, int cyl, int head, int sec, int num, byte *buf) {
 int r=0;
 asm {
  MOV  DL,byte ptr disk
  MOV  DH,byte ptr head
  MOV  CL,byte ptr sec
  AND  CL,00111111b
  MOV  AX,cyl
  MOV  CH,AL
  AND  AX,0000001100000000b
  SHR  AX,1
  SHR  AX,1
  OR   CL,AL
  LES  BX,buf
  MOV  AL,byte ptr num
  MOV  AH,3;
  INT  19
  MOV  byte ptr r,AH
 }
 return r;
}
void ResetDisk(int disk) {
 asm {
  MOV  DL,byte ptr disk
  MOV  AH,0;
  INT  19
 }
}
Конец модуля не привожу, поскольку он не связан с темой. Может быть, это поможет.
None_13
0 / 0 / 0
Регистрация: 30.08.2009
Сообщений: 24
20.10.2006, 01:34  [ТС]     Запись в сектора на floppy-диске, и чтение с этих секторов #3
Спасибо большое.
Ассемблерные вставки это хорошо, но возможно ли реализовать задачу посредставом самого Си?
John Paramol
Сообщений: n/a
20.10.2006, 03:52     Запись в сектора на floppy-диске, и чтение с этих секторов #4
Привет
Что значит "самого Си"? В Си нельзя, можно средствами WinAPI.
Это самое 13h прерывание выполняется через функцию DeviceIoControl, с параметром VWIN32_DIOC_DOS_INT13(=4), но только в Windows 95/98.
Под NT используется метод блочного чтения.
почитать можно здесь http://www.insidepro.com/kk/020/020r.shtml http://www.insidepro.com/kk/020/020r.shtml
Damirjan
Сообщений: n/a
22.10.2006, 17:52     Запись в сектора на floppy-диске, и чтение с этих секторов #5
А как насчет функций AbsRead AbsWrite
John Paramol
Сообщений: n/a
23.10.2006, 19:00     Запись в сектора на floppy-диске, и чтение с этих секторов #6
Damirjan,
можно поинтересоваться, из какой они библиотеки?
Yandex
Объявления
23.10.2006, 19:00     Запись в сектора на floppy-диске, и чтение с этих секторов
Ответ Создать тему
Опции темы

Текущее время: 11:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru