ورود

View Full Version : سوال: ساخت فایل و خواندن از آن



majidsoft
یک شنبه 12 مهر 1388, 22:39 عصر
با سلام
من می خوام برنامه هنگام بالا اومدن یک فایل را بسازه و یک عدد در آن بنویسه و در بالا آمدنهای بعدی فایل را چک کنه و اگر عدد درست بود بالا بیاد
اگه کدی در این باره دارید لطفا برام بگذارید (حتما بودن یا نبودن فایل رو چک کنه)
با تشکر

ali_md110
دوشنبه 13 مهر 1388, 00:02 صبح
یه نگاهی به این کد بکنید وقت ندارم دستپاچه برات نوشتم ولی میتونه کارتو راه بندازه

Private Sub Button4_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim my_ini As String = "1"
If File.Exists(AppPath() & "\my.ini") Then
Dim filestream As New FileStream(AppPath() & "\my.ini", FileMode.Open)
Dim ipstream As New StreamReader(filestream)
ipstream.Read()
If ipstream.Read = -1 Then
MsgBox(ipstream.Read.ToString)
End If


ipstream.Close()
filestream.Close()
Else
Dim filestream As New FileStream(AppPath() & "\my.ini", FileMode.Create)
Dim ipstream As New StreamWriter(filestream)
ipstream.Write(my_ini)
ipstream.Close()
filestream.Close()

End If
End Sub

Function AppPath() As String
Return System.IO.Path.GetDirectoryName(Reflection.Assembl y.GetEntryAssembly().Location)
End Function

majidsoft
دوشنبه 13 مهر 1388, 09:34 صبح
با تشکر
از شما کد جواب می ده ولی اگر در فایل رشته کپی کنیم هنگام خواندن ایراد می گیره که نوع آن از نوع double است آیا راهی دارد که رشته نیز از آن فایل خواند و فایل را نیز نمی خواند و msgbox را نمایش نمی دهد و آن if را رد می کند

nokhodsiah2001
دوشنبه 13 مهر 1388, 10:30 صبح
سلامکدی که دوستمون ALi نوشته کامل و جامع هستش و برای رشته هم باید کار کنه مگر رشته ای که نوشته میشه چیه می تونی نمونش رو بذاری .....

majidsoft
دوشنبه 13 مهر 1388, 12:25 عصر
با سلام من از کد به اینصورت استفاده کردم
ولی در این خط ایراد می گیره و if را رد می کنه چه از عدد استفاده کنم چه رشته

If ipstream.Read = 123 Then




Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim my_ini As String = "123"
If File.Exists(AppPath() & "\my.ini") Then
Dim filestream As New FileStream(AppPath() & "\my.ini", FileMode.Open)
Dim ipstream As New StreamReader(filestream)
ipstream.Read()
If ipstream.Read = 123 Then
MsgBox(ipstream.Read.ToString)
End If

ipstream.Close()
filestream.Close()
Else
Dim filestream As New FileStream(AppPath() & "\my.ini", FileMode.Create)
Dim ipstream As New StreamWriter(filestream)
ipstream.Write(my_ini)
ipstream.Close()
filestream.Close()
End If

End Sub

hossein-khoshseyar
دوشنبه 13 مهر 1388, 13:23 عصر
If ipstream.Read = "123" Then



دوست عزیز این درسته

majidsoft
دوشنبه 13 مهر 1388, 14:29 عصر
If ipstream.Read = "123" Then



دوست عزیز این درسته

با سلام من همین کار را ابتدا انجام دادم ولی جواب نداد شما کد را تست کن می بینی

ali_md110
سه شنبه 21 مهر 1388, 00:13 صبح
ببخشید دوست من اگر هنوز مشکلتون حل نشده کد بالا رو براتون تصحیحش کردم

Private Sub Button4_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim my_ini As String = "123"
If File.Exists(AppPath() & "\my.ini") Then
Dim filestream As New FileStream(AppPath() & "\my.ini", FileMode.Open, FileAccess.Read)
Dim ipstream As New StreamReader(filestream)
Dim str1 As String = ipstream.ReadToEnd
If str1 = "123" Then
MsgBox("فایل وجود دارد")
End If

ipstream.Close()
filestream.Close()
Else
Dim filestream As New FileStream(AppPath() & "\my.ini", FileMode.Create)
Dim ipstream As New StreamWriter(filestream)
ipstream.Write(my_ini)
ipstream.Close()
filestream.Close()

End If
End Sub

majidsoft
سه شنبه 21 مهر 1388, 22:49 عصر
با تشکر از شما دوست عزیز
آره کد جواب داد

sheervin
سه شنبه 21 مهر 1388, 23:04 عصر
می خوام وقتی آدرس مبدا رو میدم تمام محتویات آنرا در آدرس مقصدم کپی کنه, ولی موقع کپی کردن فرمم هنگ می کنه, اود یالا هم مینویسه Not Responding.مشکل از کجاس؟لطفا کمک کنید.
دیدم رو فایل کار می کنیدوگفتم شاید بتونید کمکم کنید.

ali_md110
پنج شنبه 23 مهر 1388, 02:18 صبح
تابع زیر کار کپی کردن رو انجام میده

Public Function CopyDirectory(ByVal Src As String, ByVal destination As String, Optional _
ByVal bQuiet As Boolean = False) As Boolean
If Not Directory.Exists(Src) Then
Throw New DirectoryNotFoundException("The directory " & Src & "مسیر صحیح")
End If
If Directory.Exists(destination) AndAlso Not bQuiet Then
If MessageBox.Show("مسیر " & destination & vbCrLf & _
"مایل به کپی هستید ", _
"ادامه?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, _
MessageBoxDefaultButton.Button2) = DialogResult.Cancel Then Exit Function
End If


If destination.Substring(destination.Length - 1, 1) <> Path.DirectorySeparatorChar Then
destination += Path.DirectorySeparatorChar
End If
If Not Directory.Exists(destination) Then Directory.CreateDirectory(destination)
Dim Files As String()
Files = Directory.GetFileSystemEntries(Src)
Dim strSource As String
For Each strSource In Files
If Directory.Exists(strSource) Then

CopyDirectory(strSource, destination & Path.GetFileName(strSource), True)
Else

File.Copy(strSource, destination & Path.GetFileName(strSource), True)
End If
Next
Return True
End Function
یک کنترل FolderBrowserDialog سه تا دکمه بزار با دو تا تکست باکس دوست داشتی میتونی بجای تکست باکس متعیر string تعریف کنی


Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
If Not String.IsNullOrEmpty(txtPath.Text) Then
CopyDirectory(txtPath.Text, TextBox1.Text)
MessageBox.Show("copy shod:")
End If

End Sub


Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
TextBox1.Text = FolderBrowserDialog1.SelectedPath
End If
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
FolderBrowserDialog1.SelectedPath = "C:\"
FolderBrowserDialog1.Description = "یک مسیر را انتخاب کنید"
If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
txtPath.Text = FolderBrowserDialog1.SelectedPath
End If

End Sub