برگزیده های پرشین تولز

تبديل dbf از dos به windows

f_h1360

کاربر تازه وارد
تاریخ عضویت
7 دسامبر 2006
نوشته‌ها
6
لایک‌ها
0
الگوریتم تبدیلشو بدین به من ( نحوه خوندن dbf و رکوردها و نام فیلدها) من واستون با vb می نویسم که براتون sql کنه

خوب پسر خوب من هم دقیقاً توی خوندن dbf و رکوردها و نام فیلدها مشکل دارم و ولی الگوریتم تبدیلش رو می دونم میخوای برات بفرستم
 

aria_cop

کاربر تازه وارد
تاریخ عضویت
25 دسامبر 2005
نوشته‌ها
263
لایک‌ها
2
الگوریتم تبدیلو بفرست . بعد دوباره پستمو بخون - ادیتش کردم!
 

f_h1360

کاربر تازه وارد
تاریخ عضویت
7 دسامبر 2006
نوشته‌ها
6
لایک‌ها
0
الگوریتم تبدیلو بفرست . بعد دوباره پستمو بخون - ادیتش کردم!

سلام
من با استفاده از adodc و datagrid تونستم dbf ها رو بخونم اما حالا مشکل من با این سطر از برنامه کاراگاه است for each c in selection
یعنی نمیتونه selection رو بشناسه.من این ماکرو رو توی vb6 به عنوان یک تابع convert وارد کردم.
لطفاً کمکم کنید
 

aria_cop

کاربر تازه وارد
تاریخ عضویت
25 دسامبر 2005
نوشته‌ها
263
لایک‌ها
2
سلام .
من برنامه رو نوشتم. فقط یه مشکلی دارم اونم اینه که وقتی به فارسی تبدیل میکنه عبارت رو بر عکس مینویسه وقتی میخوای برعکس کنی اونوقت همه دیتا رو بر عکس میکنه :blink: دارم روش کار میکنم. ببینیم این الگوریتمی که دوستان زدن بهتر کار میکنه یا الگوریتم خودم
 

f_h1360

کاربر تازه وارد
تاریخ عضویت
7 دسامبر 2006
نوشته‌ها
6
لایک‌ها
0
سلام .
من برنامه رو نوشتم. فقط یه مشکلی دارم اونم اینه که وقتی به فارسی تبدیل میکنه عبارت رو بر عکس مینویسه وقتی میخوای برعکس کنی اونوقت همه دیتا رو بر عکس میکنه :blink: دارم روش کار میکنم. ببینیم این الگوریتمی که دوستان زدن بهتر کار میکنه یا الگوریتم خودم

سلام دوست عزیز
آفرین که داری خودت می نویسی .ولی اگه می شه کدهای کامل حرف های dos به windows رو برای من هم بفرست تا من هم بتونم بنویسم .
پیشاپیش از کمکت ممنونم
 

ariosol

کاربر تازه وارد
تاریخ عضویت
18 دسامبر 2006
نوشته‌ها
1
لایک‌ها
0
سلام دوستان
من قبلا این کارو کردم البته برای همه ویندوزها این روشی که میگویم صادق است و با تمام زبانهای برنامه نویسی ممکن است
ابته من در اینجا فقط روش را می گویم سورس را باید خودتان بنویسید
کلاٌ نوشتن این برنامه 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 ذخیره کند. (اول باید یک فایل اکسس خالی ایجاد کنید)

البته خیلی می توانید به این برنامه رنگ و لعاب دهید این دیگر بستگی به هنر برنامه نویسی شما دارد

خداحافظ
 

rmb_ali

Registered User
تاریخ عضویت
15 مارس 2003
نوشته‌ها
1,218
لایک‌ها
21
البته اين دوست عزيزمون درست گفته اند ولي به همين راحتي كه گفتن نيست (البته نه اون چيزي كه ايشون بالا كفتن) حتما گيج شديد كه بالاخره چي به چيه ببينيد هر نوشته فارسي تو داس يه كد حداكثر سه رقمي داره كه از 128 تا 137 اعداد هستند و حروف از 141 تا 175 و از 224 تا 254 هستند حالا شما بايد معادل اسكي اين حروف رو بدست بياريد و اونو تو ويندوز جايگزين كنيد و هيچ مشكلي تا اينجا از لحاظ منطقس نيست ولي اگر شما به يك روش بخوايد اينارو منتقل كنيد يه مشكل كوچك داريد اونم اينه كه اعداد و حروف ترازشون فرق ميكنن و فيلدهاي عددي بايد مثلا از چپ به راست كنار هم قرار بگيرن ولي حروف از راست به چپ( يا برعكس) و در مورد فيلدهايي كه حروف و اعداد با هم ميكس هستن مشكل بوجود مياد و متن خروجي به هم خورده است و گرنه مشكل ديگه ايي نداره و اگر تو اون برنامه بالايي كه من گذاشتم هم نگاه كنيد من دوتا كليد گذاشتم براي حروف و اعداد حالا اگر براي اين موضوع كسي ايده يا تجربهع ايي داره بفرماييد كه سرتا پا گوشيم
 

rmb_ali

Registered User
تاریخ عضویت
15 مارس 2003
نوشته‌ها
1,218
لایک‌ها
21
اينم ليست كدهاي معادل حروف در داس
کد:
  case ord(s) of
141 : Convert:=' Â';
142 : Convert:='Æ'   ;
143 : Convert:='Á'   ;
144 : Convert:='Ç '  ;
145 : Convert:='Ç'   ;
146 : Convert:='È '  ;
147 : Convert:='È'   ;
148 : Convert:=' '  ;
149 : Convert:=''   ;
150 : Convert:='Ê '  ;
151 : Convert:='Ê'   ;
152 : Convert:='Ë '  ;
153 : Convert:='Ë'   ;
154 : Convert:='Ì '  ;
155 : Convert:='Ì'   ;
156 : Convert:=' '  ;
157 : Convert:=''   ;
158 : Convert:='Í '  ;
159 : Convert:='Í'   ;
160 : Convert:='Î '  ;
161 : Convert:='Î'   ;
162 : Convert:='Ï'   ;
163 : Convert:='Ð'   ;
164 : Convert:='Ñ'   ;
165 : Convert:='Ò'   ;
166 : Convert:='Ž'   ;
167 : Convert:='Ó '  ;
168 : Convert:='Ó'   ;
169 : Convert:= 'Ô'  ;
170 : Convert:='Ô';
171 : Convert:='Õ ';
172 : Convert:='Õ';
173 : Convert:='Ö ';
174 : Convert:='Ö';
175 : Convert:='Ø';
224 : Convert:='Ù';
225 : Convert:='Ú ';
226 : Convert:='Ú';
227 : Convert:='Ú';
228 : Convert:='Ú';
229 : Convert:='Û ';
230 : Convert:='Û';
231 : Convert:='Û';
232 : Convert:='Û';
233 : Convert:='Ý ';
234 : Convert:='Ý';
235 : Convert:='Þ ';
236 : Convert:='Þ';
237 : Convert:='ß ';
238 : Convert:='ß';
239 : Convert:=' ';
240 : Convert:='';
241 : Convert:='á ';
242 : Convert:='áÇ';
243 : Convert:='á';
244 : Convert:='ã ';
245 : Convert:='ã';
246 : Convert:='ä ';
247 : Convert:='ä';
248 : Convert:='æ';
249 : Convert:='å ';
250 : Convert:='å';
251 : Convert:='å';
252 : Convert:='í ';
253 : Convert:='í ';
254 : Convert:='í';
32  : convert:=' ';
128 : convert:='0';
129 : convert:='1';
130 : convert:='2';
131 : convert:='3';
132 : convert:='4';
133 : convert:='5';
134 : convert:='6';
135 : convert:='7';
136 : convert:='8';
137 : convert:='9';
else
      convert:=s;

  end;
 
بالا