PDA

View Full Version : سوال: نوشتن ابتدا فایل حاوی داده



armin001
پنج شنبه 06 تیر 1392, 14:34 عصر
سلام دوستان

گیر افتادم:خجالت::لبخند:

میخوام یه متن یا محتوای یه فایلی را به ابتدای یه فایل دیگه که شاید 1 کیلوبایت یا 10 گیگابایت باشه اضافه کنم ولی نمیدونم چجوری:متفکر:

فقط نگین اون فایلو که میخوای متنی به ابتداش اضافه کنی رو به انتهای اون یکی اضافه کن گفتم که ممکنه حجمش زیاد باشه

کمک...کمک

armin001
پنج شنبه 06 تیر 1392, 18:15 عصر
دوستان کسی نیست جواب بده گشتم تو تالار نبود حداقل اون چیزی که مد نظرم بود نبود
یه کمک کنید کلی گیرم لدفاً

shahryari
پنج شنبه 06 تیر 1392, 18:20 عصر
سلام
Dim file1 As String = "C:\test\test_1.txt" ' فایل اول

Dim file2 As String = "C:\test\test_2.txt" ' فایل دوم

Dim str_1 As String = IO.File.ReadAllText(file1) ' محتویات فایل اول

Dim str_2 As String = IO.File.ReadAllText(file2) ' محتویات فایل دوم

Dim t As String = str_1 & vbCrLf & str_2 ' جمع محتویات فایل اول و فایل دوم

IO.File.WriteAllText(file2, t) ' ذخیره در فایل دوم

armin001
پنج شنبه 06 تیر 1392, 18:41 عصر
عزیز دلم مگه پستو نخوندین شما:لبخندساده:
اول از توجهتون ممنون خیلی وقت بود سوال میپرسیدم کسی توجه نمیکرد شاید چون زیاد مبتدی بود
ولی گفتم فایل دوم ممکنه به 10 گیگابایتم برسه که عملا فضای زیادی رو اشغال میکنه واصلا توش ممکنه جا نشه(که نمیشه)
میخواستم یه طوری که متنی رو توی فایل به آخرش اضافه میکردیم IO.FileStream به اولش اضافه کنیم از seek استفاده کردم نشد از Position هم استفاده کردم(تو همون کلاس FileStream) اینطوری دیگه فضای زیادی تو حافظه اشغال نمیشه واز فضای روی دیسک استفاده میشه نمیدونم منظورمو رسوندم

armin001
پنج شنبه 06 تیر 1392, 22:14 عصر
واقعا راهی نیست هیچ کلاسی نیست

armin001
یک شنبه 09 تیر 1392, 19:28 عصر
دوستان چرا کسی جوابی نمیده ؟؟ اینقدر سخته یا کلا نشدنیه

armin001
یک شنبه 16 تیر 1392, 15:05 عصر
من هنوز مشکلم حل نشده ها دیگه دارم ناامید میشم یعنی نمیدونید باید چیکار کنم

eshaghrahimy
یک شنبه 16 تیر 1392, 17:29 عصر
به جای string از stringbuilder استفاده کنید

tstsst
یک شنبه 16 تیر 1392, 19:12 عصر
سلام


Dim text As Byte() = New System.Text.ASCIIEncoding().GetBytes("test text")
Dim sr As New FileStream("G:\t.txt", FileMode.Open, FileAccess.Write)
sr.Seek(0, SeekOrigin.Begin)
sr.Write(text, 0, text.Length)
sr.Close()

armin001
چهارشنبه 19 تیر 1392, 11:44 صبح
آقای tstsst خیلی ممنون ولی محتوی فایلو پاک کرد که....

tooraj_azizi_1035
چهارشنبه 19 تیر 1392, 13:20 عصر
1 down vote


Yeah, basically you can use something like this:

public static void PrependString(string value, FileStream file)
{
var buffer = new byte[file.Length];

while (file.Read(buffer, 0, buffer.Length) != 0)
{
}

if(!file.CanWrite)
throw new ArgumentException("The specified file cannot be written.", "file");

file.Position = 0;
var data = Encoding.Unicode.GetBytes(value);
file.SetLength(buffer.Length + data.Length);
file.Write(data, 0, data.Length);
file.Write(buffer, 0, buffer.Length);
}

public static void Prepend(this FileStream file, string value)
{
PrependString(value, file);
}

Then

using(var file = File.Open("yourtext.txt", FileMode.Open, FileAccess.ReadWrite))
{
file.Prepend("Text you want to write.");
}

Not really effective though in case of huge files.

armin001
چهارشنبه 19 تیر 1392, 18:41 عصر
ممنون ولی VB.net سراغ نداشتین هنگ کردم