الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أحتاج مساعدة في التعامل مع ملف نصي من فئة Ass

بدأه مدمن ++C في 21 أغسطس 2009 · 8 رد · 609 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه ،،

كيف حالك إن شاء الله دائمــاً بخير ؟

أولاً احب اباركم بقدوم الشهر الفضيل

أعاده الله علينا وعليكم

:)

في الحقيقة يا اخواني الاعزاء

صادفتني مشكلة في التعامل مع ملفات نصية من فئة

ass

لقد تعاملت مع الكثير من الملفات النصية لكن لم اجد ملفاً صعب التعامل معه كهذا

:S

الرجاء المساعدة

هذا هو محتوى الملف

اقتباس
[script Info]

Title: Default Aegisub file

ScriptType: v4.00+

WrapStyle: 0

PlayResX: 640

PlayResY: 480

ScaledBorderAndShadow: yes

Last Style Storage: Default

Audio File: ?video

Video File: D:\Naruto\Naruto 1.avi

Video Aspect Ratio: 0

Video Zoom: 8

Video Position: 125

[V4+ Styles]

Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding

Style: kookoo,Arial,40,&H00FFFFFF,&H006FEED8,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]

Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text

Dialogue: 0,0:00:00.00,0:00:05.00,kookoo,,0000,0000,0000,,{\K286}koo {\K214}koo

Dialogue: 0,0:00:00.00,0:00:05.00,kookoo,,0000,0000,0000,,{\K286}koo {\K214}koo

اريد تغير الاشياء الموجودة بين القوسين }{

وهذا الملف بسيط جداً... فماذا لو كان لدي آلاف الاقواس غير هذه

حاولت استخدام string.format();

لكنها لم تنجح

وهذا هو الكود الذي اقرأ منه الملف واكتب



using System;



using
System.Collections.Generic;



using
System.Linq;



using
System.Text;



using
System.IO;



namespace
_filestream

{

class Program



{

static void Main(string[] args)

{

FileStream f = null;

string fn = "C://test.ass";

try



{

f =
new FileStream(fn, FileMode.Open, FileAccess.ReadWrite);

StreamWriter sw = new StreamWriter(f);

StreamReader sr = new StreamReader(f);

string sr1 = sr.ReadToEnd();

Console.WriteLine(sr1);

Console.ReadLine();

sw.Close();

sr.Close();

f.Close();

}

catch (IOException ex)

{

Console.WriteLine(ex.ToString());

}

finally



{

if (f != null)

{

f.Close();

}

}

}

}

}

الرجاء المساعدة

#2

حيث أن الملف صغير, يمكنك قراءة محتواه إلى الذاكرة ثم استعمال الدالة String.Replace("{\K286}", "النص البديل") لتبديل النص "{\K286}" و لو كان متكررا في الملف. و في الأخير إعادة كتابة المحتوى الجديد للملف.

ملاحظة : لماذا لا تستعمل XML؟ ستربح السهولة و الفعالية.

تحياتي...

#3

من الواضح أنه ملف ترجمة

المهم

عليكم كما قال لك الأخ محمد رضى بالString.Replace

أو بالREGULAR EXPRESSION

فسوف يساعدك كثيرا جدا

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#4

نعم هو شبيه بملف ترجمة...

سأجرب الذي قاله لي اخي محمد رضي

ولكن ما هو XML???

#5

لم تظهر لي string.Replacer();

ما العمل...:(

#6

بعد قراءة محتوى الملف داخل كائن من نوع string يمكنك أن تقوم بتبديل المحتويات و كتابة المحتوى الجديد على نفس الملف. مثال :

			StreamReader sr = new StreamReader("file.ass");
			string s = sr.ReadToEnd();
			sr.Close();
			s.Replace("{\K286}", "new value");
			// كتابة المحتوى الجديد على الملف

بالنسبة لـ XML فسأجيبك بعد حين.

تحياتي...

#7

الحين بجرب وبشووف...

واتمنى اجابتي على XML

#8

جيد... عملت :)

الف شكر لك اخوي محمد رضى

انتظر جوابك على XML

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…