PDA

View Full Version : سوال: نوشتن آرايه در فايل



f_g1348
شنبه 27 فروردین 1390, 10:21 صبح
با سلام
دوستان من مي خواهم يه آرايه 2 بعدي كه در برنامه دارم در يك فايل متني ذخيره كنم ( در اصل log ) بردارم
لطفا مراحل ساختن فايل و نوشتن آرايه در فايل را براي من توضيح دهيد
با تشكر

alimanam
شنبه 27 فروردین 1390, 10:57 صبح
با سلام

میتونی از این روش ساده استفاده کنی .


Imports System.IO

Public Class Form1
Private sfd As New SaveFileDialog
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim arr(2, 2) As String
For i As Integer = 0 To 2
For j As Integer = 0 To 2
arr(j, i) = "Arr" & i & "-" & j
lst.Items.Add(arr(j, i))
Next
Next

sfd.Filter = "Text File|*.txt"

If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim fsStream As New FileStream(sfd.FileName, IO.FileMode.Create, IO.FileAccess.Write)
Dim swWrite As New StreamWriter(fsStream)
For i As Integer = 0 To lst.Items.Count - 1
swWrite.WriteLine(lst.Items(i))
Next
swWrite.Close()
fsStream.Close()
End If
End Sub

End Class


موفق باشید ./

alimanam
شنبه 27 فروردین 1390, 11:10 صبح
اینم یه روش دیگه با استفاده از یه مقدار Linq

Imports System.IO
Imports System.Linq
Public Class Form1
Public Structure [Item]
Public i As Integer
Public j As Integer
End Structure
Public [Items] As New List(Of Item)()
Private sfd As New SaveFileDialog
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim arr(2, 2) As String
For i As Integer = 0 To 2
For j As Integer = 0 To 2
arr(j, i) = i & j
Items.Add(New Item() With {.i = i, .j = j})
Next
Next

sfd.Filter = "Text File|*.txt"

If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim fsStream As New FileStream(sfd.FileName, IO.FileMode.Create, IO.FileAccess.Write)
Dim swWrite As New StreamWriter(fsStream)
For i As Integer = 0 To Items.Count - 1
swWrite.WriteLine(Items(i).i & "-" & Items(i).j)
Next
swWrite.Close()
fsStream.Close()
End If
End Sub

End Class

موفق باشید ./

f_g1348
شنبه 27 فروردین 1390, 11:49 صبح
با تشكر از شما
فقط يه سوال من در اصل مي خواهم اين يه log file براي من باشه در زمان اجراي برنامه .
اگر اين دستورات را استفاده كنم در هر بار اطلاعات قبلي هستند و پاك نمي شوند؟

alimanam
شنبه 27 فروردین 1390, 11:58 صبح
شما هر وقت خواستی اطلاعات به روز بشن باید این کار رو انجام بدی یعنی اطلاعات رو در فایل متنی که مشخص میکنی ذخیره بشه ( طبق عنوان تاپیکی که زدی )

موفق باشید ./

f_g1348
یک شنبه 28 فروردین 1390, 15:09 عصر
با سلام
حالا اگه من نخواهم اطلاعات قبليم پاك بشه و اين اطلاعات جديد به آن اضافه بشه چه دستوري بايد استفاده كنم ؟

alimanam
یک شنبه 28 فروردین 1390, 20:46 عصر
با سلام

حالا اگه من نخواهم اطلاعات قبليم پاك بشه و اين اطلاعات جديد به آن اضافه بشه چه دستوري بايد استفاده كنم ؟

دلیلی نمیبینم جواب سوالتون رو بدم به چند دلیل : ( البته آخرش دادم ها ..... :قهقهه: )

1- هلو بپر تو گلو سایت جفتیه !!!
2- کسی که همچین سوالی میپرسه ( به این دلیل که جواب در کدهای ارائه شده در پست 2 و 3 هست ) فقط باید یکم دقت کنی تا متوجه بشی .
3- کاربران سایت منجمله بنده حقیر بیشتر راه نشون میدن نه اینکه شما بیای یه تاپیک بزنی بعد دقیقاً جواب همون تاپیک رو کسی بیاد بده بعد اون سوال بشه 93875847 تا سوال دیگه اونم سوال هایی که با یکم زحمت دادن به خودتون ( تفکر ) به راحتی قابل حل هستن .
4- کسی که بهت راهنمایی میکنه ازش تشکر کن تا بار بعدی نگاه به آدیت کرد روشو اون طرف نکنه . ( شک نعمت , نعمتت افزون کند ...... )

و اما بعد .....

حالا که کمی به خودت اومدی البته اگه صحبتهای من رو به موضوع دیگری فرض نکرده باشی ( چون من کوچیک شما هستم فقط به نظرم لازم اومد به عنوان یه کاربر معمولی سایت این صحبت ها رو بگم )

اینم جواب :

Imports System.IO
Imports System.Linq
Public Class Form1
Public Structure [Item]
Public i As Integer
Public j As Integer
End Structure
Public [Items] As New List(Of Item)()
Private sfd As New SaveFileDialog
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim arr(2, 2) As String
Items.Clear()
For i As Integer = 0 To 2
For j As Integer = 0 To 2
arr(j, i) = i & j
Items.Add(New Item() With {.i = i, .j = j})
Next
Next

sfd.Filter = "Text File|*.txt"

If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim fsStream As New FileStream(sfd.FileName, IO.FileMode.Append, IO.FileAccess.Write)
Dim swWrite As New StreamWriter(fsStream)
For i As Integer = 0 To Items.Count - 1
swWrite.WriteLine(Items(i).i & "-" & Items(i).j)
Next
swWrite.Close()
fsStream.Close()
End If
End Sub
End Class


موفق باشید ./