写log文件时,buffer是array类型,我想写的内容是string变量,怎样将string转换成array?(50分)

  • 主题发起人 主题发起人 pingbaoshi
  • 开始时间 开始时间
P

pingbaoshi

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.WriteLog_reg;
var
; ;f:file;
; ;buffer: array[0..1023]of char;
; ;NumWritten: Integer;
; ;str,str_buffer:string;
begin
; ; str:='cess.log';
; ;AssignFile(f,str );

; ;if FileExists(str) then
; ;reset(f)
; ;else
; ; rewrite(f);
; ;str_Buffer:= str_Buffer+'用户名'+str_USERID+#13#10;
; str_Buffer:= str_Buffer+'密码'+str_PWD+#13#10;
; ; seek(f,FileSize(f));
; ;
; ; showmessage(str_buffer);
; ; buffer:=str_buffer ; ; ; ; ; ; ; ; ; ; ; ; //此处出错 Incompatible types: 'Array' and 'string'
; ; blockWrite(f, Buffer,1,Numwritten);
; ; CloseFile(F);

;end;

end.
 
lstrcopy(buffer,pchar(str_buffer));
 
上面写错了lstrcpy(^buffer,pchar(str_buffer));
 
字符转换程序如下:
procedure TForm1.Button1Click(Sender: TObject);
Var
; strMsg:string;
; bytMsg:Array[0..99] of byte;
; i:integer;
;begin
; ;strMsg:='123456';
; For i:=1 to length(strMsg) Do
; ; BytMsg:=byte(StrmMsgNo);
; ClientSocket1.Socket.SendBuf(BytMsg,Sizeof(BytMsg));
End;
 
StrCopy(Buffer, PChar(str_buffer))
 
procedure TForm1.WriteLog_reg;
var
; ;f:file;
; ;buffer: array[0..1023]of char;
; ;NumWritten: Integer;
; ;str,str_buffer:string;
; ;[RED]i : Integer;[/RED]
begin
; ; str:='cess.log';
; ;AssignFile(f,str );

; ;if FileExists(str) then
; ;reset(f)
; ;else
; ; rewrite(f);
; ;str_Buffer:= str_Buffer+'用户名'+str_USERID+#13#10;
; str_Buffer:= str_Buffer+'密码'+str_PWD+#13#10;
; ; seek(f,FileSize(f));
; ;
; ; showmessage(str_buffer);
; ;[BLUE]// buffer:=str_buffer ; ; ; ; ; ; ; ; ; ; ; ; //此处出错 Incompatible types: 'Array' and 'string'
; ; [/BLUE]
; ;[RED]NumWritten := Length(Str_buffer);
; ;for i := 1 to NumWritten do
; ; ; Buffer[i-1] = Str_Buffer;[/RED]
; ;blockWrite(f, Buffer,1,Numwritten);
; ;CloseFile(F);

;end;

end.
 
多人接受答案了。
 
后退
顶部