واضح آرشیو وب فارسی:سایت ریسک: View Full Version : خواندن خط به خط یک فایل txt در اسمبلی mrmmnb15-01-2010, 12:46 AMدوستان یه فایل تکست (با اسم دلخواه مثلا f1.txt ) که در هر خط یک عدد ممیز شناور هست میخوام برنامه به زبان اسمبلی(تحت masm32 ) بنویسم که این فایل رو بگیره بعد عدد ها رو مرتب کرده به ترتیب صعودی یا نزولی توی یه فایل دیگه مثلا f2.txt ذخیره کنه حالا من نمیدونم چطوری باید خط به خط این فایل رو بخونم که عدد ها ازش استخراج بشه یه راه بلدم که کل فایل رو میخونه اما تک تک باید چیکار کرد؟ اصلا راه دیگه ای داریم که بشه مرتب کرد؟ من میخوام خط به خط اعداد رو بخونم توی یه ارایه ذخیره کنم ارایه رو مرتب کنم دوباره یکی یکی توی یه فایل دیگه ذخیره کنم مشکلم همون خوندن خط به خط فایل ورودی هست hoax3r15-01-2010, 10:56 AMخوب میتونین از دستورات fopen و fscanf برای خودندن فایل استفاده کنی، تابع fscanf خط به خط می خونه تا به انتهای فایل برسه mrmmnb15-01-2010, 01:36 PMمیشه در باره Fscanf توضیح بدی کلا تابعش چیا میخواد یا اصلا کل تابعش رو بنویسی؟ hoax3r15-01-2010, 02:50 PMاین تابع اینجوری هست !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اینجا رو ببین کلی توضیح داده، البته قبلش باید fopen رو استفاده کنی !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اگه قبلا C کار کرده باشین استفادشون براتون زیاد سخت نباید باشه کتابخانه msvcrt.lib هم باید اضافه کنید به برنامتون به اضافه تعریف توابع fopen و fscanf و ... اینا تو هدر msvcrt.inc باید باشه، کدش یه همچین چیزی میشه، البته کامل حال نداشتم بسازم اینجا fscanf اینقدر از فایل می خونه تا به انتهای فایل برسه این کد برای گرفتن 10 تا عدد هست بخوای باید اونجایی که arr رو تعریف کردم تغییر بدی !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! ، البته کاری که می خواین انجام بدین بدون استفاه از اینا پیچیده تر از این میشه اگه کار نکرده باشین احتمالا همین کد هم یکم ممکنه براتون مبهم باشه، به هر حال اگه جاییش سوال دارین بگن اگه بدون کمک می کنم mrmmnb18-01-2010, 10:05 PMاقا سلام من هر کاری کردم نشد اون fopen و fclose به شکلی که شما نوشتید اصلا نیست(البته توی masm32 منظورمه) من رفتم دیدم یه ماکرو هایی هست توی masm32 که اینجوری از این دو دستور استفاده میکنه: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! البته این توی یکی از مثال ها خود برنامه بود خود ماکروش رو گشتم اینجوری بود(کل ماکروهایی که دمورد کار با فایل ها بود اینا بودش): !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! کل help رو هم زیر رو کردم در مورد توابع که برا کار با فایل هاست هیچی پیدا نکردم فقط یه چند تایی که توی ماکرو ها هست میشه فهمید چطوری هست بقیش رو نتونستم پیدا کنم مثلا همین fscsnf توی اون فایلی که شما گفته بودید بودش ولی دیگه توی اون ننشوته چطوری نوشته میشه و چیا رو باید بهش ارسال کرد ممنون میشم کمک کنی اینو درست کنم با تشکر hoax3r19-01-2010, 10:18 AMسلام اون ماکرو ها منظروم نبود ، اون تابع هایی که من گفتم تو msvcrt.inc تعریف میشن تو پوشه include نگاه کنید اگه نیست این فایل که میزارم دانلود کنید فایل msvcrt.inc تو پوشه include و فایل msvcrt.lib رو هم تو پوشه lib بریزین !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! حالا میتونین اونجوری که گفتم استفاده کنید. mrmmnb19-01-2010, 09:49 PMمن اون تابع ها رو اونجوری که شما گفتید استفاده کردم ولی ارور داد که این چیه نوشتی یعنی منظور ارورش این بود که نفهمیده این یک تابع هست hoax3r20-01-2010, 09:47 AMاحتمالا اون دو تا فایلی که دادم به سورستون اضافه نکردین، به این شکل باید تعریف بشه البته قبلش تو پوشه هایی که گفتم باید ریخته شده باشند، !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! باز اگه نشد مسیر کامل فایل رو بدین، مثل این !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! مثاللی که تو پست قبل دادم رو کاملتر کردم که قابل کامپایل باشه !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! تست کنید اگه باز ایراد گرفت متنشو اینجا بزارین mrmmnb20-01-2010, 02:39 PMمن که گفتم نمیشه من C بلد نیستم ولی هر چی هست طرز استفاده این تابعهایی که شما میگید توی masm32 با c فرق میکنه توی اون ماکرو هایی که بالا نوشتم معلومه چطوری استفاده کرد مثلا برایبازکردن فایل یه ماکرویی هست که اون اسمش fopen هست و فقط یه اسم فایل رو میگیره و تازه توی اون از تابعی با نام CreateFile استفاده کرده! حتما تابعی به نام fopen وجود نداره که میشه ماکرویی با این نام ساخت اینم عکس ارورری که داد http://img3.tinypic.info/files/mkp92fifcoe18okf8lfh.jpg دقیقا به همون سه تا تابع گیر داده و نفهمیده چی هست ادرس msvcrt.inc وmsvcrt.lib رو به هر دو روش دادم و فرقی نکرد hoax3r20-01-2010, 05:16 PMاون ماکروهارو که اون کسی که بسته masm32 رو سر هم کرده ساخته تا اونایی که سی کار کردن از اونا به جای CreateFile و ... استفاده کنند کاری به توابعی که من میگم نداره البته اگه macros.asm رو تو سورستون اضافه نکنی، توابعی که گفتم تو هر زبان میشه ازش استفاده کرد اون کد هم که من دادم تو masm تست کردم کار میکنه این اررور ها موقع اسمبلر کردن پیش میاد معلومه فایل msvcrt.inc رو نخونده ، چون تعریف اون توابع تو این فایله شما اون دو تا فایل رو تو پوشه هایی که گفتم ریختین دیگه؟ msvcrt.inc در c:masm32include msvcrt.lib در c:masm32lib این فایل فشرده رو بگیرین بریزین تو یه پویشه بعد make.bat رو بزنید ببینید فایل exe میسازه اگه نسازه masm تون احتمالا ایراد پیدا کرده !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! mrmmnb20-01-2010, 11:10 PMسلام یه چیز جالب امروز رفتم توی کد ادرس اون دو تا فایل شما رو دادم (یه جای اینکه از msvcrt.inc و msvcrt.lib خود برنامه استفاده کنم) جالب بود اون قسمت کد شما دیگه ارور نمیداد ولی بقیه کد رو که مینویسم و از ماکرو ها و توابع که قبلا خوندم استفاده میکنم ارور میده جریان چیه؟ یعنی msvcrt.inc و msvcrt.lib خود برنامه با msvcrt.inc و msvcrt.lib که شما دادید فرق میکنه؟یعنی میشه؟ من این کد رو می خوام تحویل بدم و طرفی که میگیره masm32 رو داره نمیدونه که باید msvcrt.inc و msvcrt.lib رو عوض کنه ضمن اینکه باید ادامه کد رو هم عوض کنم تا ارور نده میشه بفرمایید جریان چیه؟ یه سوال دیگه این فایل msvcrt.lib رو با چی میشه باز کرد و محتویاتش رو دید؟ اون یکی با نت پد باز شد ولی این چرت وپرت میاد داخلش کد های استفاده از توابع هست؟؟ hoax3r21-01-2010, 12:44 AMسلام خوب اینجور که شما گفتی پس خود masm32 این دو تا فایل رو داشته، درسته؟ من قبلا بسته masm32 ریختم و به مرور خیلی فایلهاشو تغییر دادم الان یادم اومد که قبلا فایل msvcrt.inc بسته masm32 مشکل داشت منم کلشو عوض کردم ولی فایل msvcrt.lib مشکلی نداره و نیازی به تغییرش نیست یعنی شما کافیه فایل msvcrt.inc که من دادم رو تغییر نام بده مثلا بزار crt.inc بعد داخل پوشه برنامه خودتون برزین بعد به سورس برنامتون include کنید اینجوری وقتی کدهاتون که همراهش crt.inc هم هست رو به کسی دیگه دادین مشکل رفع میشه، اون طرف هم لازم نیست چیزی رو عوض کنه البته crt.inc رو میتونین توابع اضافیشو حذف کنید که جمع و جور تر بشه که میل خودتونه در مورد msvcrt.lib باید گفت داخلش زیاد چیز بدرد بخوری نیست همون اطلاعات msvcrt.inc (اسم توابع و ..) به اضافه اطلاعات دیگه ولی با فرمت متفاوت ولی باز علاقه دارین توشو ببینید یه ابزار تو پوشه bin هست به اسم dumpbin به این صورت استفاده کنید این فقط اسم توابع رو میده !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! این یکی دستور هم تمام دل و روده اون فایلو رو براتون در میاره، یکم بیشتر از فرمان قبلی کارش طول می کشه !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! بعد اجرای یکی از این فرمانها نتیجه تو این فایل ذخیره میشه !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3315]