PDA

View Full Version : مشکل در اجرای کد



arastoahmadi
شنبه 28 تیر 1399, 09:59 صبح
سلام به همه اساتید گرامی

دوستان کد زیر رو اگه ملاحظه بفرمایید MessageBox اولی ← "Start" و MessageBox آخریم که "End" هستش رو موقعی که start میکنم برام نمایش میده منتها سه خط وسطی رو که حتی یکیش MessageBox هستش رو ازش رد میشه ضمن اینکه خطا هم نمیده که علت اجرانشدنش چیه ممنون میشم یه راهنمایی بفرمایید

MessageBox.Show("Start");
byte[] b = File.ReadAllBytes(@"D:\WebAPI 1398-10-02.rar");
string Files = Convert.ToBase64String(b);
MessageBox.Show(Files);
MessageBox.Show("End")

ShayanFiroozi
یک شنبه 29 تیر 1399, 09:03 صبح
سلام ،

کدتون رو Trace کنین ،

احتمالات :

1- نرم افزار Multi Thread یا Multi Task باشه.
2- در توابع ReadAllBytes و یا ToBase64 خطای داخلی رخ میده.
3 - حجم خیلی بالای فایل .RAR

arastoahmadi
یک شنبه 05 مرداد 1399, 07:49 صبح
حجم فایل 2 مگابایت هستش

daniyaltjm
یک شنبه 05 مرداد 1399, 09:38 صبح
سلام به همه اساتید گرامی

دوستان کد زیر رو اگه ملاحظه بفرمایید MessageBox اولی ← "Start" و MessageBox آخریم که "End" هستش رو موقعی که start میکنم برام نمایش میده منتها سه خط وسطی رو که حتی یکیش MessageBox هستش رو ازش رد میشه ضمن اینکه خطا هم نمیده که علت اجرانشدنش چیه ممنون میشم یه راهنمایی بفرمایید

MessageBox.Show("Start");
byte[] b = File.ReadAllBytes(@"D:\WebAPI 1398-10-02.rar");
string Files = Convert.ToBase64String(b);
MessageBox.Show(Files);
MessageBox.Show("End")




سلام از کلاس StringBuilder استفاده کن چون اینجوری فشار کمتری به رم و سیستمت میاد....!!

ولی جدا از این کدت یک مشکل بزرگ داره با تابع ToBase64String شما اطلاعات رو رمزگذاری می کنی و حجم این رمزگذاری خیلی زیاده در حد چند مگابایت و وقتی می خوای توی مسیج باکس نشونش بده جا نمیشه حتی توی Text Box و RichText Box هم جا نمیشه چون Max Value تا حد اکثر اندازه int است که میشه
2,147,483,647 که در حالت عادی کمتر هم هست "32767
" حالا این کد رو هم امتحان کن ببین که توی فایلی که توی نوت پد ذخیره میشه حجم چقدره و داره درست کار میکنه....

using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Threading;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
progressBar1.Value = 0;
MessageBox.Show("Start");
backgroundWorker1.RunWorkerAsync();
this.Cursor = Cursors.WaitCursor;






}


private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{

byte[] b = File.ReadAllBytes(@"C:\Users\Daniyal\Desktop\a.rar");
StreamWriter sw = File.CreateText(@"C:\Users\Daniyal\Desktop\text1.txt");
sw.WriteLine(Convert.ToBase64String(b));
sw.Close();


}



private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.Cursor = Cursors.Arrow;
progressBar1.Value = 100;
MessageBox.Show("End");


}
}
}





151969

barnamenevisjavan
یک شنبه 05 مرداد 1399, 12:43 عصر
سلام به همه اساتید گرامی

دوستان کد زیر رو اگه ملاحظه بفرمایید MessageBox اولی ← "Start" و MessageBox آخریم که "End" هستش رو موقعی که start میکنم برام نمایش میده منتها سه خط وسطی رو که حتی یکیش MessageBox هستش رو ازش رد میشه ضمن اینکه خطا هم نمیده که علت اجرانشدنش چیه ممنون میشم یه راهنمایی بفرمایید

MessageBox.Show("Start");
byte[] b = File.ReadAllBytes(@"D:\WebAPI 1398-10-02.rar");
string Files = Convert.ToBase64String(b);
MessageBox.Show(Files);
MessageBox.Show("End")


برنامه اجرا کن بعد قسمت Output ویژوال استودیو رو چک کن متن خطا اونجا ظاهر میشه