Четверг, 26.12.2024, 14:56 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024  
чем заменить Stream
-=eXclass=-Дата: Пятница, 06.03.2015, 20:42 | Сообщение # 1
Новичок
Зарегистрирован: 06.03.2015
Группа: Пользователи
Сообщений: 1
Статус: Offline
Помогите изменить код, под winapi, без использования Stream и TStringStream, но выполнять код так же

Код

var
     c: array [1..6] of Byte = (11,1,00,01,110,101)
...
procedure TForm1.Button1Click(Sender: TObject);
var
   f:TFileStream;
   s:TStringStream;
   i,j:integer;
begin
  f:=TFileStream.Create('text.txt',fmOpenReadWrite);
  s:=TStringStream.Create;
  s.CopyFrom(f,f.Size);
  for i:=0 to s.Size do
    begin
     j:=Random(6);
     s.Bytes[i]:=c[j];
    end;
  f.Position:=0;;
  f.Write(s.Bytes,s.Size);
  f.Free;
  s.Free;
end;
 
ramzeswrДата: Суббота, 07.03.2015, 08:48 | Сообщение # 2
Участник
Зарегистрирован: 17.04.2013
Группа: Пользователи
Сообщений: 61
Статус: Offline
Оно?
Код
var
   c: array [1..6] of Byte = (11,1,00,01,110,101);

function GetFile(path: string): string;
var
   Len, CntRead : Longword;
   hF : THandle;
   s: string;
begin
   result:='';
   s:='';
   hF := CreateFile(PChar(path), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
   if hF = INVALID_HANDLE_VALUE then
     Exit;
   Len := GetFileSize(hF, @Len);
   SetLength(S, Len);
   try
     ReadFile(hF, Pointer(S)^, Len, CntRead, nil);
   finally
     CloseHandle(hF);
   end;
   result:=s;
end;

procedure WriteToFile(path, data: string);
var
   hFile :THandle;
   ByteWritten : cardinal;
begin
   hFile:= CreateFile(PChar(path) ,GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE,nil,CREATE_ALWAYS,0,0);
   WriteFile(hFile, data[1], Length(data),ByteWritten, nil);
   CloseHandle(hFile);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   s: string;
   i, r:integer;
begin
   s := GetFile('text.txt');
   for i:=1 to length(s) do
     begin
       randomize;
       r :=  Random(6);
       s[i]:= Char(c[r]);
     end;
   WriteToFile('text.txt', s);
end;
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz