باز کردن یک فایل بصورت باینری و ویرایش کردن محتویات آن (ویژوال بیسیک)

Mostafa Khalili

New Member
علی آقا اگر بخواییم دنبال یه مقدار بزرگتر بگردیم و جایگزین کنیم باید چیکار کنیم مثلا این مقدار
1122334462547418
 

the_king

مدیرکل انجمن
علی آقا اگر بخواییم دنبال یه مقدار بزرگتر بگردیم و جایگزین کنیم باید چیکار کنیم مثلا این مقدار
1122334462547418

مقدار هر چی که هست بصورت بایت های متوالی جستجو اش کنید. به یک تابعی نیاز دارید که یک سری بایت
متوالی رو جستجو کنه :

کد:
Private Function FindDataBytes(ByVal File As Integer, ByVal Start As Long, ByRef Data() As Byte) As Long
    Dim Buffer As Byte, Length As Long, Pos As Long
    Dim Count As Long
    Length = LOF(File)
    Pos = Start
    Do Until Pos > Length - UBound(Data)
        Get #1, Pos, Buffer
        If Buffer = Data(Count) Then
            Count = Count + 1
            If Count > UBound(Data) Then
                FindDataBytes = Pos - Count + 1
                Exit Do
            End If
            Pos = Pos + 1
        Else
            Pos = Pos - Count + 1
            Count = 0
        End If
    Loop
End Function

اگه 1122334462547418 یک عدد صحیح 7 بایتی باشه در مبنای 16 میشه 03FCC1DAF595DA
پس دنبال بایت های DA و 95 و F5 و DA و C1 و FC و 03 بگردید :
کد:
    Dim SearchData() As Byte, Pos As Long
    ReDim SearchData(0 To 6)
    SearchData(0) = &HDA
    SearchData(1) = &H95
    SearchData(2) = &HF5
    SearchData(3) = &HDA
    SearchData(4) = &HC1
    SearchData(5) = &HFC
    SearchData(6) = &H3
    Pos = FindDataBytes(1, 1, SearchData)
 

Mostafa Khalili

New Member
علی جان میخواستم بدونم چطوری میشه توی یه فایل تعداد دفعات تکرار یک کد باینری رو پیدا کرد؟؟؟مثلا ما توی یه فایل مقدار hd329845&
رو سه بار داریم حالا بخواییم توی یه لیبیل و یا تکست تعداد دفعات تکرار رو بنویسیم باید چیکار کنیم؟
 

the_king

مدیرکل انجمن
علی جان میخواستم بدونم چطوری میشه توی یه فایل تعداد دفعات تکرار یک کد باینری رو پیدا کرد؟؟؟مثلا ما توی یه فایل مقدار hd329845&
رو سه بار داریم حالا بخواییم توی یه لیبیل و یا تکست تعداد دفعات تکرار رو بنویسیم باید چیکار کنیم؟

با هر تابعی که آدرس شروع جستجو اش رو میشه تعیین کرد می توانید تعداد دفعات تکرار را بشمارید.

مثلا شمردن تعداد تکرار حرف a در رشته با تابع InStr بدین نحو انجام میشه :
کد:
    Dim s As String, Count As Long, Pos As Long
    s = "babbababaaabbbab"
    Count = 0
    Pos = 0
    Do
        Pos = InStr(Pos + 1, s, "a")
        If Pos = 0 Then Exit Do
        Count = Count + 1
    Loop
    MsgBox Count

مثلا شمردن تعداد تکرار مقدار H12345678& با تابع FindDataLong در فایل شماره 1 بدین نحو انجام میشه :
کد:
    Dim Count As Long, Pos As Long
    Count = 0
    Pos = 0
    Do
        Pos = FindDataLong(1, Pos + 1, &H12345678)
        If Pos = 0 Then Exit Do
        Count = Count + 1
    Loop
    MsgBox Count

مثلا شمردن تعداد تکرار داده H12 &HB4 &HA5& با تابع FindDataBytes در فایل شماره 1 بدین نحو انجام میشه :
کد:
    Dim Count As Long, Pos As Long
    Dim SearchData(0 To 2) As Byte
    SearchData(0) = &H12
    SearchData(1) = &HB4
    SearchData(2) = &HA5
    Count = 0
    Pos = 0
    Do
        Pos = FindDataBytes(1, Pos + 1, SearchData)
        If Pos = 0 Then Exit Do
        Count = Count + 1
    Loop
    MsgBox Count
 

reza0091

New Member
با سلام
اگر بخواهیم یک اسم را در یک فایل txt جایگزین اسمی دیگر کنیم از چه کدی باید استفاده کنیم؟
مثلا reza0091 را به جای reza ?!!
فایل تکستی که میخوام ویرایش کنم پر از کاراکتر و حروف و علائم هست و بسیار طولانی ! و با کدهایی که من آزمایش کردم برای جایگزینی کلمه مورد نظر،هیچ اتفاقی رخ نداد!
میشه منو راهنمایی کنید؟
 
آخرین ویرایش:

the_king

مدیرکل انجمن
با سلام
اگر بخواهیم یک اسم را در یک فایل txt جایگزین اسمی دیگر کنیم از چه کدی باید استفاده کنیم؟
مثلا reza0091 را به جای reza ?!!
فایل تکستی که میخوام ویرایش کنم پر از کاراکتر و حروف و علائم هست و بسیار طولانی ! و با کدهایی که من آزمایش کردم برای جایگزینی کلمه مورد نظر،هیچ اتفاقی رخ نداد!
میشه منو راهنمایی کنید؟
قبل از هر کاری از فایل متنی تان کپی بگیرید تا نگران خراب شدن اش نباشید.

Text باید از داخل فایل درست خوانده بشه، اسم مورد نظر به درستی جایگزین بشه و نتیجه به درستی در فایل ذخیره بشه.
برای خواندن و درست نوشتن در فایل (مخصوصا اگه فایل متنی بصورت Unicode ذخیره شده یا باید بشه) به این پست مراجعه کنید :
پنجره showopen و showsave
که دو روتین ReadFile و SaveFile کد اش هست.

مثال اش میشه این، به شرطی که بخواهید خروجی Unicode ذخیره بشه :
کد:
    Dim s As String
    s = ReadFile("C:\Your Folder\Your File.txt")
    s = Replace(s, "alireza", "babak")
    SaveFile "C:\Your Folder\Your File.txt", s, True

وگرنه پارامتر سوم SaveFile رو False کنید :
کد:
    Dim s As String
    s = ReadFile("C:\Your Folder\Your File.txt")
    s = Replace(s, "alireza", "babak")
    SaveFile "C:\Your Folder\Your File.txt", s, False
 

reza0091

New Member
ممنون
فقط یه سوال
از قسمت ریفرنسس باید چیزی اضافه کنیم؟ آخه هنگام اجرای دستور یه

ReadFile دیباگ میگیره!!!!

یا باید چه فانکشنی اضافه کنیم؟

مرسی
 

the_king

مدیرکل انجمن
ممنون
فقط یه سوال
از قسمت ریفرنسس باید چیزی اضافه کنیم؟ آخه هنگام اجرای دستور یه

ReadFile دیباگ میگیره!!!!

یا باید چه فانکشنی اضافه کنیم؟

مرسی
چیزی نباید Reference بشه اما ReadFile که دستور ویژوال بیسیک نیست، باید کد اش رو بنویسید، لینک هم داده بودم که کدش کجا هست.
 

tebyandn

New Member
کمک

سلام من یک کد میخوام که test.txt رو بخونه و جاهایی که نوشته farhad به amir تغییر بده بدون اینه پنجر ه باز شه تتغییرات در فایل سیو شه
منظورم اینه که تو یه تکس باکس هر چی بنویسم ورو یه دکمه کلیک کنیم به جای اfarhad متن تو تکس باکس قرار گیره خواهش میکنم جواب بدبن


test.txt
[PHPS]</Resolve>
<ProxificationPortableEngine subsystem="32">
<Location>Winsock</Location>
<Type hotpatch="true">Prologue</Type>
</ProxificationPortableEngine>:rose::rose:
<ProxificationPortableEngine subsystem="64">
<Location>farhad</Location>
<Type hotpatch="false">Prologue</Type>
</ProxificationPortableEngine>
<Encryption mode="basic" />
<HttpProxiesSupport enabled="false" />
<HandleDirectConnections enabled="false" />
<ConnectionLoopDetection enabled="true" />
<ProcessServices enabled="false" />
<ProcessOtherUsers enabled="false" />[/PHPS]
 

elahe123

New Member
سلام
دوستان من میخاستم به کمک ویژوال بیسیک 1 فایل txt را دریافت کنم بعد از دریافت 1 شماره اشتراک 10 رقمی را سرچ کنم و اگه تو فایل txt وجود داشت اون سطر پاک بشه میشه کمکم کنید؟
 

impera

New Member
با سلام به دوستان عزیز من میخوام بدونم که در vb.net برای باز کردن یک فایل چطوری میتونم آدرس دهی کنم ک با انتقال exe برنامه به درایو دیگه و یا کامپیوتر دیگه برنامه بتونه تشخیص بده مثلا در vb من آدرس دهی میکنم ولی متاسفانه به محض انتقال سورس و فایل exe به درایو دیگه مسیر دایرکتوری رو نمیشناسه لطفاً ساده توضیح بدید چون من تازه کارم ممنونم
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
System.Diagnostics.Process.Start("F:\vb\.NetSorceCode\.NetSorceCode\bin\Debug\Code\Open URL In Web Browser.txt")
 

the_king

مدیرکل انجمن
با سلام به دوستان عزیز من میخوام بدونم که در vb.net برای باز کردن یک فایل چطوری میتونم آدرس دهی کنم ک با انتقال exe برنامه به درایو دیگه و یا کامپیوتر دیگه برنامه بتونه تشخیص بده مثلا در vb من آدرس دهی میکنم ولی متاسفانه به محض انتقال سورس و فایل exe به درایو دیگه مسیر دایرکتوری رو نمیشناسه لطفاً ساده توضیح بدید چون من تازه کارم ممنونم
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
System.Diagnostics.Process.Start("F:\vb\.NetSorceCode\.NetSorceCode\bin\Debug\Code\Open URL In Web Browser.txt")

مسیر فایل اجرایی exe تون رو مبنا قرار بدهید و مسیر فایل متنی رو نسبت به اون تعیین کنید :

کد:
[COLOR="#A9A9A9"]    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
[/COLOR]        Dim p As String = System.IO.Path.GetDirectoryName(Application.ExecutablePath)
        Dim t As String = System.IO.Path.Combine(p, "Code\Open URL In Web Browser.txt")
        System.Diagnostics.Process.Start(t)
[COLOR="#A9A9A9"]    End Sub[/COLOR]

توصیه می کنم که همیشه برای اضافه کردن یک مسیر فایل-پوشه به مسیر دیگه از Path.Combine کمک بگیرید و مستقیما از عملگر + رشته استفاده نکنید.
متغیر p پوشه ای که فایل اجرایی exe تون در اون قرار داره رو بدست میاره. حالا شما می توانید در متغیر t بهش پوشه یا مسیر فایلی رو اضافه کنید.

اگر خواستید یه پوشه به سمت ریشه عقب بیایید از .. استفاده کنید. فرضا اگر p پوشه "C:\Apps\Project1\Setup" باشه و شما
به اون "Project2\..\.." رو اضافه کنید میشه "C:\Apps\Project1\Setup\..\..\Project2" که عملا به پوشه "C:\Apps\Project2" می رسید.
 

mehdikoki

New Member
سلام
من يك فايل متني دارم با پسوند fdb . داخل اين فايل يكسري مختصات دارم كه بعداز كلمه $ area connectivity قرار گرفته.من ميخام اين مختصات رو از اين فايل متني برداشت كنم. كسي ميتونه كمك كنه.
مختصان نقاط داخل عكس مشخص كردم.
فايل متني هم پيوست كردم.
ممنون
 

پیوست ها

  • Capture.JPG
    Capture.JPG
    141.5 کیلوبایت · بازدیدها: 4
  • Untitled.zip
    763 بایت · بازدیدها: 6

جدیدترین ارسال ها

بالا