PDA

View Full Version : سوال: خواندن فایل متنی و ذخیره آن



niko2008
دوشنبه 06 مهر 1388, 22:10 عصر
سلام دوستان من یک فایل متنی به شکل زیر دارم که یک سیستم هر 1 دقیقه به من میده

OK ----- V1
OK ----- V2
OK ----- V3
OK ----- V4
این در دقیقه اوله ولی در دقیقه 10 به شکل زیر در میاد

OK ----- V1
NO ----- V2
OK ----- V3
OK ----- V4
حالا من میخوام این دو تغییر را بخونم و در یک فایل متنی به شکل زیر ذخیره کنم


OK ----- V2
NO ----- V2
بنظر شما من از چه روشی برای ذخیره ان تغییرات در هر دقیقه استفاده کنم؟:اشتباه:

MBG73
دوشنبه 06 مهر 1388, 23:28 عصر
من دقیقا منظورتونو نفهمیدم .

niko2008
دوشنبه 06 مهر 1388, 23:36 عصر
ببینید من یک فایلی راذر هر دقیقه بصورت تکست فایل طبق مثال شکل بالا میگیرم که بعد از گذشت زمان مثل شکل پایین تغییر میکن من میخوام این دو تغییر وضعیت را ثبت کنم

MBG73
دوشنبه 06 مهر 1388, 23:50 عصر
نمیدونم جوابم عاقلانه هست یا نه ( البته منظور رو هنوز دقیق نفهمیدم ).

ولی من این راه به نظرم میرسه .
بعد از هر بار تغییر(هر دقیقه) با save setting مقدار v1 و v2 و v3 و v4 رو سیو کن ولی قبل از سیو مقادیر جدید اونارو با مقادیری که از قبل سیو کردی مقایسه کن و اگه یکی نبود بگو تغییرات رو برات ثبت کنه .

کمک کرد ؟

در ضمن لازم نبود 2 تا تاپیک (http://barnamenevis.org/forum/showthread.php?t=181982)باز کنی .

xxxxx_xxxxx
دوشنبه 06 مهر 1388, 23:50 عصر
فکر می کنم این دفعه پنجم یا ششم باشه که این تاپیک رو ایجاد می کنید و هر باز هم پاک میشه یا به خاطر تکراری بودن ویا مثل الان به خاطر عنوان نامناسب.

بعد از دریافت این اطلاعات در هردقیقه، اطلاعات همون دقیقه رو به طور نظیر به نظیر با دقیقه قبل مقایسه کنید و تفاوت ها رو جدا کنید و ذخیره کنید.

MBG73
دوشنبه 06 مهر 1388, 23:53 عصر
کمک کردم که . به درد نخورد ؟

niko2008
دوشنبه 06 مهر 1388, 23:55 عصر
شما روش مقایسه رو به من یاد میدی

ASedJavad
دوشنبه 06 مهر 1388, 23:58 عصر
در ضمن لازم نبود 2 تا تاپیک (http://barnamenevis.org/forum/showthread.php?t=181982)باز کنی .

کاشکي فقط دو تا بود ...:متفکر::متفکر::متفکر::متفکر ::متفکر::متفکر::متفکر:

xxxxx_xxxxx
سه شنبه 07 مهر 1388, 00:00 صبح
دوست عزیز چندین تاپیک برای آموزش کار با فایل ها وجود داره اونها رو مطالعه کنید کار زیاد سختی نیست. بعد متوجه میشید که چطور باید عمل کنید.

MBG73
سه شنبه 07 مهر 1388, 00:01 صبح
شما روش مقایسه رو به من یاد میدی

میتونید از تابع strcomp استفاده کنید .

شکل کلی بصورت زیر هست .


STRCOMP(string1,string2,[compare])

قسمت compare اختیاری هست که اگه مقدارش 0 باشه ، در مقایسه بین حروف کوچک و بزرگ تفاوت قایل میشه و اگه 1 باشه برعکس .

موفق باشید .

niko2008
سه شنبه 07 مهر 1388, 00:01 صبح
عزیز شنیدن کی بود مانند دیدن ........ چطور سیو کنم میتونی با یه مثال بگین

ASedJavad
سه شنبه 07 مهر 1388, 00:02 صبح
مي توني تو تايمرت يه آرايه استاتيک تعريف کني
بعد در هر سري اول مقدار متغير هاي آرايه ات رو با مقدار جديد مقايسه کني بعد تغييراتي تو فايلت بريزي و بعد مقادير جديد رو بريزي تو آرايه ات

MBG73
سه شنبه 07 مهر 1388, 00:04 صبح
عزیز شنیدن کی بود مانند دیدن ........ چطور سیو کنم میتونی با یه مثال بگین

به این تاپیک (http://barnamenevis.org/forum/showthread.php?t=175941) سر بزن .

MBG73
سه شنبه 07 مهر 1388, 00:05 صبح
مي توني تو تايمرت يه آرايه استاتيک تعريف کني
بعد در هر سري اول مقدار متغير هاي آرايه ات رو با مقدار جديد مقايسه کني بعد تغييراتي تو فايلت بريزي و بعد مقادير جديد رو بريزي تو آرايه ات

فکر کنم این عاقلانه تر باشه .

niko2008
سه شنبه 07 مهر 1388, 00:08 صبح
خواهشن میشه یک مثال از آرایه برام بگین چون تا صبح وقتم خیلی کم مونده

MBG73
سه شنبه 07 مهر 1388, 01:20 صبح
اگه مشکلتون در تعریف آرایه هست ، به این شکله :

نوع داده As (دامنه) نام آرایه Static

مثلا :

Static no(14) As Double

ASedJavad
سه شنبه 07 مهر 1388, 15:32 عصر
فکر کنم اين تا حدودي کارتو راه بندازه
(فقط بجاي فايل، نتايج رو تو يه تکست باکس مينويسه که تو فايل نوشتن هم تقريبا مثل همونه با يه سري تفاوت هاي کوچولو):
37645

niko2008
سه شنبه 07 مهر 1388, 17:01 عصر
دوست عزیز این کد را برای من ترجمه کنید آیا از این کد در مورد پروژه خودم را بنویسم



Public Type BRF
name As String
FNAME As String
CLASS As String
OMU As String

End Type
Public BAF(10) As BRF

دوستان مقاله ای درمورد آرایه های استاتیک دارید؟

niko2008
سه شنبه 05 آبان 1388, 22:42 عصر
فرض کنیم بحث در این تاپیک باشه خوب مدیر محترم نتیجه؟

xxxxx_xxxxx
سه شنبه 05 آبان 1388, 23:00 عصر
بسیار خب.
دو فایل با نام های A.txt و B.txt در ریشه درایو C ایجاد کنید.
محتوای فایل A.txt:
OK ----- V1
OK ----- V2
OK ----- V3
OK ----- V4

محتوای فایل B.txt:
OK ----- V1
NO ----- V2
OK ----- V3
OK ----- V4

خب حالا کد زیر رو امتحان کنید:


Open "C:\A.txt" For Input As #1
Open "C:\B.txt" For Input As #2
While EOF(1) = False
Input #1, FileA
Input #2, FileB

If FileA <> FileB Then
Open "C:\Difference.txt" For Append As #3
Print #3, FileA
Print #3, FileB
Close #3
End If
Wend
Close #1
Close #2


موفق باشید/

niko2008
سه شنبه 05 آبان 1388, 23:09 عصر
بسیار خب.
دو فایل با نام های A.txt و B.txt در ریشه درایو C ایجاد کنید.
محتوای فایل A.txt:
OK ----- V1
OK ----- V2
OK ----- V3
OK ----- V4

محتوای فایل B.txt:
OK ----- V1
NO ----- V2
OK ----- V3
OK ----- V4

خب حالا کد زیر رو امتحان کنید:


Open "C:\A.txt" For Input As #1
Open "C:\B.txt" For Input As #2
While EOF(1) = False
Input #1, FileA
Input #2, FileB

If FileA <> FileB Then
Open "C:\Difference.txt" For Append As #3
Print #3, FileA
Print #3, FileB
Close #3
End If
Wend
Close #1
Close #2


موفق باشید/
خیلی خیلی تشکر از حسن نیت شما
ولی عرض کنم خدمت مدیر محترم که a.txt که همیشه ثابت نیست به نظر شما آیا درسته من همیشه a.txt را ثابت نگه دارم و تغییرات رو از روی ان بخونم؟

xxxxx_xxxxx
سه شنبه 05 آبان 1388, 23:25 عصر
a.txt یک مثال هست. خب شما اون اطلاعاتی که احیاناً در قالب فایل نگهداری می کند کجاست؟ همون فایل رو بجای a.txt باز کنید.
یعنی درواقع a.txt فایل 1 دقیقه قبل است و b.txt فایل جدیدی است که دریافت کردید. خودتون آدرس هاشو بدید دیگه!

niko2008
چهارشنبه 06 آبان 1388, 14:42 عصر
a.txt یک مثال هست. خب شما اون اطلاعاتی که احیاناً در قالب فایل نگهداری می کند کجاست؟ همون فایل رو بجای a.txt باز کنید.
یعنی درواقع a.txt فایل 1 دقیقه قبل است و b.txt فایل جدیدی است که دریافت کردید. خودتون آدرس هاشو بدید دیگه!

سلام مدیر محترم جواب نداد اگر این پروژه رو کامل نکنم کارمو از دست میدم

xxxxx_xxxxx
چهارشنبه 06 آبان 1388, 16:51 عصر
سلام،
چند خط کدی که در بالا نوشتم مسلماً جواب میده و همون کاری رو انجام میده که شما گفتید. حالا این قطعه کد در مقیاس برنامه شما پاسخگو نیست دلیلش این هست که برنامه شما فایل ها رو از جای دیگه ای دریافت میکنه که نه من می دونم و نه سایر کاربران؛ واقعاً چه انتظاری دارید که از آنچه که خبر نداریم اظهار اطلاع کنیم!

موفق باشید/

niko2008
چهارشنبه 06 آبان 1388, 20:04 عصر
سلام،
چند خط کدی که در بالا نوشتم مسلماً جواب میده و همون کاری رو انجام میده که شما گفتید. حالا این قطعه کد در مقیاس برنامه شما پاسخگو نیست دلیلش این هست که برنامه شما فایل ها رو از جای دیگه ای دریافت میکنه که نه من می دونم و نه سایر کاربران؛ واقعاً چه انتظاری دارید که از آنچه که خبر نداریم اظهار اطلاع کنیم!

موفق باشید/

خوب خواهش میکنم عاجزانه

xxxxx_xxxxx
چهارشنبه 06 آبان 1388, 21:41 عصر
فکر می کنم متوجه نشدید!
به هرحال دستور فوق صحیح است و برای فایل هایی که قرار دادید تنها دستور شرطی رو به شکل زیر تغییر بدید:
همچنین بجای Input از Line Input باید استفاده کنید.


Open "C:\1.txt" For Input As #1
Open "C:\2.txt" For Input As #2
While EOF(1) = False
Line Input #1, FileA
Line Input #2, FileB

If (InStr(1, FileA, "WO") > 0 And InStr(1, FileB, "BL")) > 0 Or _
(InStr(1, FileA, "BL") > 0 And InStr(1, FileB, "WO")) > 0 Then
Open "C:\Difference.txt" For Append As #3
Print #3, FileA
Print #3, FileB
Close #3
End If
Wend
Close #1
Close #2

این الان با انجام یک تمرین دانشجویی/دانش آموزی هیچ تفاوتی نداشت چراکه شما حتی حاظر نیستید کدهایی که بهتون داده میشه رو یک نگاه کنید.



سلام مدیر محترم جواب نداد اگر این پروژه رو کامل نکنم کارمو از دست میدم

دیگران مسئول مسئولیت پذیری های ما نیستند.



خوب خواهش میکنم عاجزانه

من هم از شما خواهش می کنم حداقل چند ثانیه هم که شده دستورات بالا رو نگاه کنید تا بفهمید که داره چه اتفاقی میافته که خدای نکرده یک if باعث از دست داددن شغلتون نشه!

موفق باشید/

niko2008
دوشنبه 07 دی 1388, 23:55 عصر
[quote=xxxxx_xxxxx;836762]فکر می کنم متوجه نشدید!
به هرحال دستور فوق صحیح است و برای فایل هایی که قرار دادید تنها دستور شرطی رو به شکل زیر تغییر بدید:
همچنین بجای Input از Line Input باید استفاده کنید.


Open "C:\1.txt" For Input As #1
Open "C:\2.txt" For Input As #2
While EOF(1) = False
Line Input #1, FileA
Line Input #2, FileB

If (InStr(1, FileA, "WO") > 0 And InStr(1, FileB, "BL")) > 0 Or _
(InStr(1, FileA, "BL") > 0 And InStr(1, FileB, "WO")) > 0 Then
Open "C:\Difference.txt" For Append As #3
Print #3, FileA
Print #3, FileB
Close #3
End If
Wend
Close #1
Close #2



سلام xxxxx_xxxxx جان مدیر محترم

ضمن عرض تشکر از زحمات شما ، من از این کد به مدت 1 ماه تحت آزمایش قرار دادم ولی ایرادات فراونی داشت بعضی مواقع تغیرات را درست ثبت نمیکنه آیا روش بهتر از این روش ابتدایی دارین؟ منتظر نظرات شما برای ارائه راهکار جدید هستیم .

niko2008
چهارشنبه 09 دی 1388, 19:00 عصر
سلام راهکار جدیدی پیدا نشد. منتظریم

niko2008
سه شنبه 15 دی 1388, 22:22 عصر
سلام خدمت اساتید محترم یه راهکار جدیدی برای حل مشکل ما بدین

xxxxx_xxxxx
سه شنبه 15 دی 1388, 22:39 عصر
سلام،
خب بجای اینها، بگید چه مشکلاتی داشت؟ چه پیغام خطایی میداد؟ مشکل کجا بود؟ تغییرات رو درست ثبت نمیکنه خب شاید دلیلش کوچک و بزرگ بودن حروف WO و BL هست. اینها رو بررسی کنید. برنامه دست شماست، ما که خبر نداریم

niko2008
سه شنبه 15 دی 1388, 22:55 عصر
سلام،
خب بجای اینها، بگید چه مشکلاتی داشت؟ چه پیغام خطایی میداد؟ مشکل کجا بود؟ تغییرات رو درست ثبت نمیکنه خب شاید دلیلش کوچک و بزرگ بودن حروف WO و BL هست. اینها رو بررسی کنید. برنامه دست شماست، ما که خبر نداریم

سلام استاد محترم
من دوتا فایل تکست با زمانهای که سیستم در هر دقیقه میده گذاشتم . همچنان که اشاره کردین تغییرات رو درست ثبت نمیکنه یعنی یک برنامه مطمئن برای ثبت خرابی نیست.

xxxxx_xxxxx
سه شنبه 15 دی 1388, 23:56 عصر
شما به عنوان کسی که سؤالی رو مطرح کرده و میخواد مشکلش حل شه، حداقل اگر تلاشی برای حل مشکل نمیکنید، باید مشکل رو به طور کامل و با جزئیات مطرح کنید، نه اینکه بعد از copy/paste کردن کدها در پروژه تان و با گذشت دو ماه بیایید بگید برنامه درست کار نمیکنه یک روش دیگه بگید. و نه اینکه صورت مسأله رو قرار بدید و از دیگران بخواید که حلش کنند.

عنوان تاپیک "خواندن فایل متنی و ذخیره آن" هست، و تا اینجا نحوه خواندن فایل متنی و ذخیره آن گفته شده.

تاپیک به دلیل درخواست انجام پروژه قفل شد/