کار با فایل های تصادفی در vb.net

pilevar

Member
سلام

در vb6 وقتی میخواستم یک فایل تصادفی تعریف کنیم این کارا رو میکردیم.

در یک کلاس ابتدا پارامتر هامون رو تعیرف میکردیم(اینجوری):
[LTR]
کد:
type omid
        name as string*20
        family as string *50
        num as intiger
end type
[/LTR]

برای باز کردن فایل از دستور open استفاده میکردم.
و برای فراخوانی و نوشتن هم از دستور های put و get استفاده میکردیم.
این کار توی vb.net به چطوری است؟
 

pilevar

Member
این مقاله رو خوندم.

چیزی متوجه نشدم.(از #C چیزی بلد نیستم)

میشه نوع تعریف Type و همچنین دستور open در visual basic.net رو بفرمایید؟
 

saalek110

Well-Known Member
http://www.divshare.com/download/3791980-368

شاید این کتاب کمک کنه.

Visual Basic NET The Complete Reference

3 مگا.

15a8tu.jpg
 

the_king

مدیرکل انجمن
فرض کنید که این کد را در ویژوال بیسیک نوشته ایم :

کد:
Private Type MyDataType
    A As Long
    B As Single
    C As Byte
End Type

Private Sub Form_Load()
    Dim Path As String, MyRecord As MyDataType
    Path = "C:\Folder\File.dat"
    Open Path For Random As #1 Len = Len(MyRecord)
    Put #1, 1, MyRecord
    Close #1
End Sub

این کد، یک فایل را برای دسترسی تصادفی با رکوردهایی که از نوع MyDataType هستند باز می کند و یک رکورد را در آن می نویسد.

حالا اگه به ویژوال بیسیک دات نت 2005 تبدیلش کنیم میشه :
کد:
	Private Structure MyDataType
		Dim A As Integer
		Dim B As Single
		Dim C As Byte
	End Structure
	
	Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
        Dim Path As String
        Dim MyRecord As MyDataType
        Path = "C:\Folder\File.dat"
        FileOpen(1, Path, OpenMode.Random, , , Len(MyRecord))
        FilePut(1, MyRecord, 1)
        FileClose(1)
	End Sub

تغییرات کد مشخصه، ساختار MyDataType را بجای Type با Structure ایجاد می کنیم.
فایل به جای Open با FileOpen باز میشه.
برای نوشتن در فایل بجای Put از FilePut استفاده می کنیم. (FileGet هم معادل جدید Get است)
بستن فایل هم بجای Close با FileClose انجام میشه.
 

pilevar

Member
the_king جان ممنون

تو vb.net چطوری میشه رشته با طول ثابت تعریف کرد؟

تو vb6 اینجوری بود:
کد:
Dim king as string*10
توی اینجا که اینو مینوسم ارور میده.

چی کار باید بکنم؟
 

the_king

مدیرکل انجمن
اینطوری متغیر با طول ثابت را تعریف می کنند (البته مایکروسافت توصیه کرده که بی خیال مجموعه VB6 بشید) :

کد:
Dim king As New VB6.FixedLengthString(10)
 

pilevar

Member
این دستور توی تعریف در Structure خطا میگیره.

new داشته باشه عدد آخر رو گیر نمیده ولی خود new رو خطا میده اونو حذف کنیم عدد آخر رو گیر میده.

من باید chakar kenam؟
 

the_king

مدیرکل انجمن
کد:
Option Strict Off
Option Explicit On
Friend Class Form1
	Inherits System.Windows.Forms.Form
	
	Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
	[B]	Dim S As New VB6.FixedLengthString(40)[/B]
	End Sub
End Class

این عین کدی است که من نوشته ام و بدون خطا اجرا میشه.
کد کامل پروژه را ضمیمه این پست می کنم.
 

پیوست ها

  • Project1.NET2.zip
    27 کیلوبایت · بازدیدها: 41

جدیدترین ارسال ها

بالا