PDA

View Full Version : سوال: انتقال داده های فایل تکست به آرایه



zhmzhm
جمعه 15 آذر 1387, 00:36 صبح
سلام.یک فایل تکست دارم که چندتا ستون و سطر از اعداد داره.میخوام این فایل رو تو ویژوال بخونم و داخل یک ماتریس(هر عدد در یک درایه)قرار بدم.طوریکه برای ماتریس( mat(i,jبه هر space رسید به شمارنده i یک واحد و به انتهای سطر رسید به شمارنده j یک واحد اضافه کنه.
اگر بتونین کمکم کنین خیلی ممنون میشم:لبخندساده:

اوبالیت به بو
جمعه 15 آذر 1387, 01:01 صبح
متغير هاي Global برنامه:


Dim FileName As String
Dim FileNumber As Integer
Dim Matrix(1 To 2, 1 To 2) As Integer
Dim i, j As Byte

طبيعتاً اول بايد ماتريس مورد نظر مقداردهي بشه:


For i = 1 To 2
For j = 1 To 2
Matrix(i, j) = InputBox("Enter a some of value in :" & i & "," & j, "Input Value")
Next j
Next i

و بعد از مقداردهي بايد در يك فايل ذخيره بشه:


FileNumber = FreeFile()
FileName = "C:\Matrix.txt"
Open FileName For Output As FileNumber
For i = 1 To 2
For j = 1 To 2
Print #FileNumber, Matrix(i, j) & Space(1);
'Print Matrix(i, j);
Next j
'Print
Print #FileNumber, vbCrLf
Next i
Close FileNumber

و براي اينكه از فايل مورد نظر خونده بشه:


Open FileName For Input As FileNumber
For i = 1 To 2
For j = 1 To 2
Input #FileNumber, Matrix(i, j)
Next j
Next i
Close FileNumber

نكته: اينجا ماتريس من 2*2 هستش پس بايد حلقه ها حد آخرشون 2 باشه. اندازه ي خونه هاي آرايه و تعداد دفعات حلقه به هم وابسته هستن و مقدار عدديشون اختياري.

zhmzhm
جمعه 15 آذر 1387, 10:41 صبح
خیلی کمکم کردین.انتظار نداشتم اینقدر کامل کسی جواب بده.فقط مشکل اینه که من این فایل تکست که شامل یک ماتریس از اعداده دارم و نمیخوام بسازم(فقط میخوام بخونمش و فقط برای input بازش میکنم.در ضمن تعداد سطرها و ستونهاشم مشخص نیست.اگه بازم بتونین کمکم کنین خیلی لطف میکنین:خجالت:

اوبالیت به بو
جمعه 15 آذر 1387, 13:01 عصر
من این فایل تکست که شامل یک ماتریس از اعداده دارم و نمیخوام بسازم(فقط میخوام بخونمش و فقط برای input بازش میکنم.در ضمن تعداد سطرها و ستونهاشم مشخص نیست
يه خورده سخت و قشنگ تر شد. فكر مي كنم كه بايد اول نوع ماتريس در فايل رو مشخص كنيم.صد درصد دوبعدي هستش ولي چند در چند رو بايد يك بار ركورد هاي فايل رو براي تعداد سطرها و يك بار هم فيلدهاي فايل رو براي مشخص كردن ستون ماتريس پيمايش كنيم. وبعد با Redim (http://barnamenevis.org/forum/showpost.php?p=524635&postcount=2)تغيير بعد بديم.
روش كار ميكنيم....
{اين پست ويرايش مي شود.}

zhmzhm
جمعه 15 آذر 1387, 13:18 عصر
بازم خیلی ممنون!خیلی لطف میکنین.منتظرم:لبخندساده:

zhmzhm
شنبه 16 آذر 1387, 22:41 عصر
جواب سوالمو پیدا کردم
http://forum.majidonline.com/showthread.php?t=110246

با MSFlexGrid هم میدونم میشه اما از اونجا که تازه کارم بلد نیستم!اگه شما میتونین کمکم کنین:لبخندساده: