筱红包 2015-12-08 11:36 采纳率: 0%
浏览 1373
已结题

vb Get #lngFno, 101, datLogdat 改写成c#,怎么改?

下面一段VB代码改写成C#,该怎么改?
Public Type TYPE_SYSLOG
lngPointer As Long

strDate As String
strTime As String
lngStatus As Long

lngSize As Long

strLog As String
End Type

Public Sub PubSuSysbLogPut(prmstrLog As String, prmlngStatus As Long)
Dim lngFno As Long

Dim lngPointer As Long

Dim VarNowTime As Variant

Dim datLogdat As TYPE_SYSLOG

Dim lngFsize As Long

Dim lngCnt As Long

Dim prmstrFname As String

prmstrFname="D:\log.SLG"

On Error Resume Next
lngFsize = FileLen(prmstrFname)
If Err Then
    FileCopy NEW_SYSLOG, prmstrFname
End If
On Error GoTo 0

VarNowTime = Now

On Error Resume Next
For lngCnt = 1 To 200
    Err = 0
    lngFno = FreeFile
    Open prmstrFname For Random Lock Write As #lngFno Len = Len(datLogdat)
    If Err Then
        Call Sleep(100)
    Else
        Exit For
    End If
Next lngCnt

If lngCnt > 200 Then
    If SYS_GRVL_ErrHandler_Dlog_Sw = SYS_GRVL_EHDLOG_ON Then
        MsgBox "Write Error" & Chr(&HD) & "FileName = " & prmstrFname & Chr(&HD) & "ErrorCode = " & Err
    End If
End If
On Error GoTo 0

Get #lngFno, 101, datLogdat

lngPointer = datLogdat.lngPointer + 1
If lngPointer > 100 Then lngPointer = lngPointer - 100

With datLogdat
    .lngPointer = lngPointer
    .strDate = Format(VarNowTime, "yyyy/mm/dd")
    .strTime = Format(VarNowTime, "hh:nn:ss")
    .lngStatus = prmlngStatus
    .lngSize = LenB(StrConv(prmstrLog, vbFromUnicode))
    .strLog = prmstrLog
End With

Put #lngFno, datLogdat.lngPointer, datLogdat

Put #lngFno, 1011, datLogdat

Close #lngFno

End Sub

  • 写回答

1条回答 默认 最新

  • threenewbee 2015-12-08 15:44
    关注

    最简单不动脑子的改法就是直接引用visualbasic命名空间,调用FileSystem.FileGet

    https://msdn.microsoft.com/library/dh87yy97.aspx

    如果你不会,你可以用VB写出程序,用ilspy反编译,里面可以查看对应的C#写法。

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作