سلام دوستان
من قبلا این کارو کردم البته برای همه ویندوزها این روشی که میگویم صادق است و با تمام زبانهای برنامه نویسی ممکن است
ابته من در اینجا فقط روش را می گویم سورس را باید خودتان بنویسید
کلاٌ نوشتن این برنامه 3 ساعت وقت نیاز دارد
1- ابتدا وارد فاکس پرو شوید و تمام اسکی کدهای 1 تا 255 را یاداشت کنید یعنی هر کدی مربوط به کدام کراکتر است
2 - وارد ویندوز شوید و برنامه ویژوال استودیو را نصب کنید حال وارد ویزوال بیسیک یا ویزوال سی شوید و برنامه ای بنویسید که یونی کدهای 1 تا 2000 را چاپ کند حال جدول یونی کد ها را یاداشت کنید (البته از کراکتر مپ ویندوز هم باید استفاده کنید.)
3- حالا سعی کنید یک کلاس درست کنید که در آن یک متغییر از نوع رشته(که تحت داس تایپ شده باشد) را خوانده و به متن قابل خواندن در ویندوز تبدیل کند.
4 - حالا به کلاس خود چند مازول دیگر باید اضافه کنید.
الف - مازولی که فایلهای فاکس پرو را باز کند و بتواند آنرا فیلد به فیلد بخواند این کار بسیار ساده است در ماژول خود فایل فاکسپرو را بصورت باینری باز کنید (در ویژوال بیسیک میتوانید از دستور
open "filename.dbf" for binary as #FileNum
استفاده کنید) حالا از ابتدا تا انتهای را می خوانیم فقط تنها نکته ای که بسیار مهم است اینست که باید هدر فایل فاکسپرو را بخوانید که خیلی ساده است هدر فایل فاکسپرو بصورت زیر فرمت بندی شده است ابتدا نام فیلد و سپس اندازه فیلد.( برای از هدر فایل فاکسپرو سر درآورید باید در فاکسپرو یک فایل dbf ایجاد کنید و سپس توسط نرم C یا بیسیک تحت داس آن را بایت به بایت خوانده و مورد بررسی قرار دهید.
ب - حال مازولی دیگری بسازید که توسط Ado از کامپوننت های Adodb.Connection و َAdodb.Recordset استفاده کنید و یک فایل اکسس را باز کند.
5 - حال میتوانید برنامه ای بنویسید که از این کلاس استفاده کند.(حتی می توانید کلاس خود را به dll تبدیل کنید)
و فیلدها را از dbf بخواند سپس تبدیل کند و بعد در فایل Access ذخیره کند. (اول باید یک فایل اکسس خالی ایجاد کنید)
البته خیلی می توانید به این برنامه رنگ و لعاب دهید این دیگر بستگی به هنر برنامه نویسی شما دارد
خداحافظ