PDA

View Full Version : تابعی برای تبدیل بانکها از dos به windows



ehsan2000
سه شنبه 15 آذر 1384, 15:19 عصر
با سلام خدمت همه دوستان عزیز
این تابع رو برای تبدیل بانکهای foxpro تحت dos به بانکهای تحت ویندوز نوشتم. تابع در مورد متنهای بدون عدد درست کار می کند ولی هنگامی که متن ما شامل کارکتر عددی هم هست مشکل داره یعنی مثلا اگر عبارت ما ' چک شماره 123 بانک ملی ' باشه متن تبدیلی به صورت ' چک شماره321 بانک ملی ' می دهد. اگه کسی تونست مشکل رو حل کنه ممنون می شم. ولی باز با این وجود همین تیکه هم کار منو خیلی راه انداخته امیدوارم به کار شما هم بیاد. ضمنا کد عکس این حالت رو هم نوشتم(از windows به dos که برای تامین اجتماعی و .. کاربرد داره) اگه مایل بودید بگید تقدیم کنم. :چشمک:
یا حق...


function tabdilef(x:String):String;
var
matn1:String ;
i,j,k,_k2:integer;
begin
i:=-1;j:=0;k:=0;_k2:=0;matn1:='';

while Length(x)>= i do
begin
i:=i+1;
j:=ord(x[Length(x)-i]);


k:=ord(x[Length(x)-i+1]);
_k2:=ord(x[Length(x)-i-1]);


case j of
141:matn1:=matn1+chr(194) ;
198:matn1:=matn1+chr(142) ;
143:matn1:=matn1+chr(193) ;//hamzeh
145,144: matn1:=matn1+chr(199);


146: if _k2<>255 then matn1:=matn1+chr(200)+chr(32)
else matn1:=matn1+chr(200);

147: matn1:=matn1+chr(200);
148:if _k2<>255 then matn1:=matn1+chr(129)+chr(32)
else matn1:=matn1+chr(129);
149: matn1:=matn1+chr(129);

150:if _k2<>255 then matn1:=matn1+chr(202)+chr(32)
else matn1:=matn1+chr(202);
151: matn1:=matn1+chr(202);//t

152:if _k2<>255 then matn1:=matn1+chr(203)+chr(32)
else matn1:=matn1+chr(203);
153: matn1:=matn1+chr(203);//sth

154:if _k2<>255 then matn1:=matn1+chr(204)+chr(32)
else matn1:=matn1+chr(204);
155: matn1:=matn1+chr(204);//gim

156:if _k2<>255 then matn1:=matn1+chr(141)+chr(32)
else matn1:=matn1+chr(141);
157: matn1:=matn1+chr(141);//ch

158:if _k2<>255 then matn1:=matn1+chr(205)+chr(32)
else matn1:=matn1+chr(205);
159: matn1:=matn1+chr(205);//h gimi

160:if _k2<>255 then matn1:=matn1+chr(206)+chr(32)
else matn1:=matn1+chr(206);
161: matn1:=matn1+chr(206);//kh

162: matn1:=matn1+chr(207);//d
163: matn1:=matn1+chr(208);//zth
164: matn1:=matn1+chr(209);//r
165: matn1:=matn1+chr(210);//z
166: matn1:=matn1+chr(142);//zgh
167:if _k2<>255 then matn1:=matn1+chr(211)+chr(32)
else matn1:=matn1+chr(211);
168: matn1:=matn1+chr(211);//sin
169:if _k2<>255 then matn1:=matn1+chr(212)+chr(32)
else matn1:=matn1+chr(212);
170: matn1:=matn1+chr(212);//shin

171:if _k2<>255 then matn1:=matn1+chr(213)+chr(32)
else matn1:=matn1+chr(213);
172: matn1:=matn1+chr(213);//sad

173:if _k2<>255 then matn1:=matn1+chr(214)+chr(32)
else matn1:=matn1+chr(214);
174: matn1:=matn1+chr(214);//zad

175:if (_k2=145) or (_k2=227) or (_k2=231) or (_k2=250) then matn1:=matn1+chr(216)
else matn1:=matn1+chr(216)+chr(32);//ta
224:if (_k2<>255) and (_k2<>145) then matn1:=matn1+chr(217)+chr(32)
else matn1:=matn1+chr(217);//za

225,226:if _k2<>255 then matn1:=matn1+chr(218)+chr(32)
else matn1:=matn1+chr(218);
227,228: matn1:=matn1+chr(218);//ain

229,230:if _k2<>255 then matn1:=matn1+chr(218)+chr(32)
else matn1:=matn1+chr(219);
231,232: matn1:=matn1+chr(219);//ghain

233:if _k2<>255 then matn1:=matn1+chr(221)+chr(32)
else matn1:=matn1+chr(221);
234: matn1:=matn1+chr(221);//f

235:if _k2<>255 then matn1:=matn1+chr(222)+chr(32)
else matn1:=matn1+chr(222);
236: matn1:=matn1+chr(222);//ghaf

237:if _k2<>255 then matn1:=matn1+chr(223)+chr(32)
else matn1:=matn1+chr(223);
238: matn1:=matn1+chr(223);//kaf

239:if _k2<>255 then matn1:=matn1+chr(144)+chr(32)
else matn1:=matn1+chr(144);
240: matn1:=matn1+chr(144);//ghaf

241:if _k2<>255 then matn1:=matn1+chr(225)+chr(32)
else matn1:=matn1+chr(225);
243: matn1:=matn1+chr(225);//lam

242: matn1:=matn1+chr(225)+chr(199);//la
244:if _k2<>255 then matn1:=matn1+chr(227)+chr(32)
else matn1:=matn1+chr(227);
245: matn1:=matn1+chr(227);//mim

246:if _k2<>255 then matn1:=matn1+chr(228)+chr(32)
else matn1:=matn1+chr(228);
247: matn1:=matn1+chr(228);//non

248: matn1:=matn1+chr(230);//vav

249:if _k2<>255 then matn1:=matn1+chr(229)+chr(32)
else matn1:=matn1+chr(229);

250,251: matn1:=matn1+chr(229);//h

252:matn1:=matn1+chr(237)+chr(32);
253:if _k2<>255 then matn1:=matn1+chr(237)+chr(32)
else matn1:=matn1+chr(237);
254: matn1:=matn1+chr(237);//non

128:matn1:=matn1+chr(48) ;//0
129:matn1:=matn1+chr(49) ;//1
130:matn1:=matn1+chr(50) ;//2
131:matn1:=matn1+chr(51) ;//3
132:matn1:=matn1+chr(52) ;//4
133:matn1:=matn1+chr(53) ;//5
134:matn1:=matn1+chr(54) ;//6
135:matn1:=matn1+chr(55) ;//7
136:matn1:=matn1+chr(56) ;//8
137:matn1:=matn1+chr(57) ;//9

46:matn1:=matn1+chr(46) ;//.

48:matn1:=matn1+chr(48) ;//0
49:matn1:=matn1+chr(49) ;//1
50:matn1:=matn1+chr(50) ;//2
51:matn1:=matn1+chr(51) ;//3
52:matn1:=matn1+chr(52) ;//4
53:matn1:=matn1+chr(53) ;//5
54:matn1:=matn1+chr(54) ;//6
55:matn1:=matn1+chr(55) ;//7
56:matn1:=matn1+chr(56) ;//8
57:matn1:=matn1+chr(57) ;//9

138:matn1:=matn1+chr(161) ;// ,
140:matn1:=matn1+chr(191) ;// ?
40:matn1:=matn1+chr(40) ;// (
41:matn1:=matn1+chr(41) ;// )
47:matn1:=matn1+chr(47) ;// /
255:matn1:=matn1+chr(32) ;// ' '
else
matn1:=matn1+'';
end;
end;

tabdilef:=matn1;
end;

Developer Programmer
سه شنبه 15 آذر 1384, 16:39 عصر
می بخشید که مزاحم میشم.
به منظور خوانایی کدتان؛ لطفا انرا بین تگ های Code قرار دهید
ممنون

ehsan2000
چهارشنبه 16 آذر 1384, 19:15 عصر
آی به چشم :چشمک:

MM_Mofidi
چهارشنبه 16 آذر 1384, 20:40 عصر
این کد را از روی کد آقای کیا در foxpro به vb تبدیل کردم به نظم کامل است.خیلی کامل ولی یکم کند به نظر میرسد.برای حجم داده زیاد

FatemehB
دوشنبه 05 دی 1384, 14:23 عصر
سلام
میشه بگید جه جوری ازش استفاده میشه کرد ؟

ممنون

Mahdi_S_T
سه شنبه 06 دی 1384, 10:28 صبح
آقا احسان لطف کن این تابع ویندوز به داس رو هم بزار تا استفاده کنیم . آیا سرعت اون خوبه

ehsan2000
چهارشنبه 07 دی 1384, 11:54 صبح
بازم سلام

این کد تکمیل شده کد بالاست.(dos to windows) مشکلش رو حل کردم :لبخند: ( هم اعداد و هم پرانتزها). حالشو ببرین:چشمک:

سرعتشم بد نیست. 1000 تا رکورد50 فیلدی رو توی 15 ثانیه جواب گرفتم.
برای استفاده از اون هم که می دونید: مثلا فیلدی با نام FAMIL


tablewinfamil.values:=tabdilef(tabledosfamil.value s)


Mahdi_S_T جان چشم. در اولین فرصت win to dos هم می زارمش.


function tabdilef(x:String):String;
var
matn1,mat2,mat3:String ;
i,j,k,_k2:integer;
begin
i:=-1;j:=0;k:=0;_k2:=0;matn1:='';mat2:='';mat3:='';


while Length(x)>= i do
begin
i:=i+1;
j:=ord(x[Length(x)-i]);

k:=ord(x[Length(x)-i+1]);
_k2:=ord(x[Length(x)-i-1]);


// ShowMessage(inttostr(j));
case j of
141:matn1:=matn1+chr(194) ;
198:matn1:=matn1+chr(142) ;
143:matn1:=matn1+chr(193) ;//hamzeh
145,144: matn1:=matn1+chr(199);

// 144: matn1:=matn1+chr(199);

146: if _k2<>255 then matn1:=matn1+chr(200)+chr(32)
else matn1:=matn1+chr(200);

147: matn1:=matn1+chr(200);
148:if _k2<>255 then matn1:=matn1+chr(129)+chr(32)
else matn1:=matn1+chr(129);
149: matn1:=matn1+chr(129);

150:if _k2<>255 then matn1:=matn1+chr(202)+chr(32)
else matn1:=matn1+chr(202);
151: matn1:=matn1+chr(202);//t

152:if _k2<>255 then matn1:=matn1+chr(203)+chr(32)
else matn1:=matn1+chr(203);
153: matn1:=matn1+chr(203);//sth

154:if _k2<>255 then matn1:=matn1+chr(204)+chr(32)
else matn1:=matn1+chr(204);
155: matn1:=matn1+chr(204);//gim

156:if _k2<>255 then matn1:=matn1+chr(141)+chr(32)
else matn1:=matn1+chr(141);
157: matn1:=matn1+chr(141);//ch

158:if _k2<>255 then matn1:=matn1+chr(205)+chr(32)
else matn1:=matn1+chr(205);
159: matn1:=matn1+chr(205);//h gimi

160:if _k2<>255 then matn1:=matn1+chr(206)+chr(32)
else matn1:=matn1+chr(206);
161: matn1:=matn1+chr(206);//kh

162: matn1:=matn1+chr(207);//d
163: matn1:=matn1+chr(208);//zth
164: matn1:=matn1+chr(209);//r
165: matn1:=matn1+chr(210);//z
166: matn1:=matn1+chr(142);//zgh
167:if _k2<>255 then matn1:=matn1+chr(211)+chr(32)
else matn1:=matn1+chr(211);
168: matn1:=matn1+chr(211);//sin
169:if _k2<>255 then matn1:=matn1+chr(212)+chr(32)
else matn1:=matn1+chr(212);
170: matn1:=matn1+chr(212);//shin

171:if _k2<>255 then matn1:=matn1+chr(213)+chr(32)
else matn1:=matn1+chr(213);
172: matn1:=matn1+chr(213);//sad

173:if _k2<>255 then matn1:=matn1+chr(214)+chr(32)
else matn1:=matn1+chr(214);
174: matn1:=matn1+chr(214);//zad

175:if (_k2=145) or (_k2=227) or (_k2=231) or (_k2=250) then matn1:=matn1+chr(216)
else matn1:=matn1+chr(216)+chr(32);//ta
224:if (_k2<>255) and (_k2<>145) then matn1:=matn1+chr(217)+chr(32)
else matn1:=matn1+chr(217);//za

225,226:if _k2<>255 then matn1:=matn1+chr(218)+chr(32)
else matn1:=matn1+chr(218);
227,228: matn1:=matn1+chr(218);//ain

229,230:if _k2<>255 then matn1:=matn1+chr(218)+chr(32)
else matn1:=matn1+chr(219);
231,232: matn1:=matn1+chr(219);//ghain

233:if _k2<>255 then matn1:=matn1+chr(221)+chr(32)
else matn1:=matn1+chr(221);
234: matn1:=matn1+chr(221);//f

235:if _k2<>255 then matn1:=matn1+chr(222)+chr(32)
else matn1:=matn1+chr(222);
236: matn1:=matn1+chr(222);//ghaf

237:if _k2<>255 then matn1:=matn1+chr(223)+chr(32)
else matn1:=matn1+chr(223);
238: matn1:=matn1+chr(223);//kaf

239:if _k2<>255 then matn1:=matn1+chr(144)+chr(32)
else matn1:=matn1+chr(144);
240: matn1:=matn1+chr(144);//ghaf

241:if _k2<>255 then matn1:=matn1+chr(225)+chr(32)
else matn1:=matn1+chr(225);
243: matn1:=matn1+chr(225);//lam

242: matn1:=matn1+chr(225)+chr(199);//la
244:if _k2<>255 then matn1:=matn1+chr(227)+chr(32)
else matn1:=matn1+chr(227);
245: matn1:=matn1+chr(227);//mim

246:if _k2<>255 then matn1:=matn1+chr(228)+chr(32)
else matn1:=matn1+chr(228);
247: matn1:=matn1+chr(228);//non

248: matn1:=matn1+chr(230);//vav

249:if _k2<>255 then matn1:=matn1+chr(229)+chr(32)
else matn1:=matn1+chr(229);

250,251: matn1:=matn1+chr(229);//h

252:matn1:=matn1+chr(237)+chr(32);
253:if _k2<>255 then matn1:=matn1+chr(237)+chr(32)
else matn1:=matn1+chr(237);
254: matn1:=matn1+chr(237);//non

128:matn1:=matn1+chr(48) ;//0
129:matn1:=matn1+chr(49) ;//1
130:matn1:=matn1+chr(50) ;//2
131:matn1:=matn1+chr(51) ;//3
132:matn1:=matn1+chr(52) ;//4
133:matn1:=matn1+chr(53) ;//5
134:matn1:=matn1+chr(54) ;//6
135:matn1:=matn1+chr(55) ;//7
136:matn1:=matn1+chr(56) ;//8
137:matn1:=matn1+chr(57) ;//9

37:matn1:=matn1+chr(37) ;//.
42:matn1:=matn1+chr(42) ;//%
45:matn1:=matn1+chr(45) ;//-
46:matn1:=matn1+chr(46) ;//.

48:matn1:=matn1+chr(48) ;//0
49:matn1:=matn1+chr(49) ;//1
50:matn1:=matn1+chr(50) ;//2
51:matn1:=matn1+chr(51) ;//3
52:matn1:=matn1+chr(52) ;//4
53:matn1:=matn1+chr(53) ;//5
54:matn1:=matn1+chr(54) ;//6
55:matn1:=matn1+chr(55) ;//7
56:matn1:=matn1+chr(56) ;//8
57:matn1:=matn1+chr(57) ;//9

138:matn1:=matn1+chr(161) ;// ,
140:matn1:=matn1+chr(191) ;// ?
40:matn1:=matn1+chr(40) ;// (
41:matn1:=matn1+chr(41) ;// )
47:matn1:=matn1+chr(47) ;// /
255:matn1:=matn1+chr(32) ;// ' '

else
matn1:=matn1+'';
end;
// ShowMessage(matn1);
end;
//

///
mat2:='';mat3:='' ;

for i:= 0 to length(matn1) do
begin
// ShowMessage(matn[i]);
if not (matn1[i] in ['1','2','3','4','5','6','7','8','9','0','/','-','(',')']) then
begin
if Length(mat2)>0 then
begin
mat3:=mat3+' '+mat2+' '+matn1[i] ;
mat2:='';
end
else
mat3:=mat3+matn1[i] ;
end
else
begin

if matn1[i]='(' then matn1[i]:=')' else
if matn1[i]=')' then matn1[i]:='(';
mat2:=matn1[i]+mat2;
end;
end;


tabdilef:=trim(mat3+mat2);
end;

Mahdi_S_T
چهارشنبه 07 دی 1384, 15:58 عصر
احسان عزیز من اون تابع اولی که قبلا گذاشتی رو تست کردم ولی در خروجی هیچ رشته ای رو نشان نمی داد و البته خطایی هم نمی داد .

حالا این یکی رو تست کنم ببینم چی میشه ؟

Mahdi_S_T
چهارشنبه 07 دی 1384, 16:03 عصر
آقا احسان این تابع جدیده وقتی اجرا کردم خطا داد . اگه امکان داره یه مثال آپلود کن . ممنون

Bahmany
چهارشنبه 07 دی 1384, 16:20 عصر
سلام علیکم

میخواستم بدونم که آیا کدهای فوق برای کلمات فارسی نیز صدق می کنند

ehsan2000
پنج شنبه 08 دی 1384, 21:56 عصر
اینم کد مربوط به تبدیل از windows به dos:چشمک:


function tabdilfe(x:String):String;
var
matn1:String ;
i,j,k,_k2:integer;
begin
i:=-1;j:=0;k:=0;_k2:=0;matn1:='';

while Length(x)>= i do
begin
i:=i+1;
if (ord(x[Length(x)-i])>= 48) and (ord(x[Length(x)-i])<= 57) then
j:=ord(x[i+1])
else j:=ord(x[Length(x)-i]);


k:=ord(x[Length(x)-i+1]);
_k2:=ord(x[Length(x)-i-1]);


// ShowMessage(inttostr(j));
case j of
194:matn1:=matn1+chr(141) ;
198:matn1:=matn1+chr(142) ;
193:matn1:=matn1+chr(143) ;//hamzeh
199: if ( (i= Length(x)-1) or (_k2=32) or (_k2=199) or (_k2=207) or (_k2=208) or (_k2=209) or (_k2=210) or (_k2=142) or (_k2=230) ) then
matn1:=matn1+chr(144)
else matn1:=matn1+chr(145);

200:if (i=0) or (k=32) then matn1:=matn1+chr(146)
else matn1:=matn1+chr(147);//b

129:if (i=0) or (k=32) then matn1:=matn1+chr(148)
else matn1:=matn1+chr(149);//p

202:if (i=0) or (k=32) then matn1:=matn1+chr(150)
else matn1:=matn1+chr(151);//t

203:if (i=0) or (k=32) then matn1:=matn1+chr(152)
else matn1:=matn1+chr(153);//3

204:if (i=0) or (k=32) then matn1:=matn1+chr(154)
else matn1:=matn1+chr(155);//gim

141:if (i=0) or (k=32) then matn1:=matn1+chr(156)
else matn1:=matn1+chr(157);//ch

205:if (i=0) or (k=32) then matn1:=matn1+chr(158)
else matn1:=matn1+chr(159);//h jimi

206:if (i=0) or (k=32) then matn1:=matn1+chr(160)
else matn1:=matn1+chr(161);//kh
207:matn1:=matn1+chr(162) ;//d
208:matn1:=matn1+chr(163) ;//the
209:matn1:=matn1+chr(164) ;//r
210:matn1:=matn1+chr(165) ;//z
142:matn1:=matn1+chr(166) ;//zh

211:if (i=0) or (k=32) then matn1:=matn1+chr(167)
else matn1:=matn1+chr(168);//sin

212:if (i=0) or (k=32) then matn1:=matn1+chr(169)
else matn1:=matn1+chr(170);//shin

213:if (i=0) or (k=32) then matn1:=matn1+chr(171)
else matn1:=matn1+chr(172);//sad

214:if (i=0) or (k=32) then matn1:=matn1+chr(173)
else matn1:=matn1+chr(174);//zad

216:matn1:=matn1+chr(175) ;//ta
217:matn1:=matn1+chr(224) ;//za

218:if ((i=0) or (k=32)) and ( (_k2=32) or (_k2=199) or (_k2=207) or (_k2=208) or (_k2=209) or (_k2=210) or (_k2=142) or (_k2=230) ) then
matn1:=matn1+chr(225)
else
begin
if (i=0) and ( (_k2<>32) or (_k2<>199) or (_k2<>207) or (_k2<>208) or (_k2<>209) or (_k2<>210) or (_k2<>142) or (_k2<>230)) then
matn1:=matn1+chr(226);
if ( (i<>0) and ( i<>Length(x)-1 ) ) and ( (k=32) or (_k2=32) or (_k2=199) or (_k2=207) or (_k2=208) or (_k2=209) or (_k2=210) or (_k2=142) or (_k2=230) ) then
matn1:=matn1+chr(228)
else
begin
if i=Length(x)-1 then matn1:=matn1+chr(228);
if ( (i<>0) and (i<> length(x)-1)) and ( (k<>32) or (_k2<>32) or (_k2<>199) or (_k2<>207) or (_k2<>208) or (_k2<>209) or (_k2<>210) or (_k2<>142) or (_k2<>230) ) then
matn1:=matn1+chr(227);
end;
end;//ain

219:if ((i=0) or (k=32)) and ( (_k2=32) or (_k2=199) or (_k2=207) or (_k2=208) or (_k2=209) or (_k2=210) or (_k2=142) or (_k2=230) ) then
matn1:=matn1+chr(229)
else
begin
if (i=0) and ( (_k2<>32) or (_k2<>199) or (_k2<>207) or (_k2<>208) or (_k2<>209) or (_k2<>210) or (_k2<>142) or (_k2<>230)) then
matn1:=matn1+chr(230);
if ( (i<>0) and ( i<>Length(x)-1 ) ) and ( (k=32) or (_k2=32) or (_k2=199) or (_k2=207) or (_k2=208) or (_k2=209) or (_k2=210) or (_k2=142) or (_k2=230) ) then
matn1:=matn1+chr(232)
else
begin
if i=Length(x)-1 then matn1:=matn1+chr(232);
if ( (i<>0) and (i<> length(x)-1)) and ( (k<>32) or (_k2<>32) or (_k2<>199) or (_k2<>207) or (_k2<>208) or (_k2<>209) or (_k2<>210) or (_k2<>142) or (_k2<>230) ) then
matn1:=matn1+chr(231);
end;
end; ////ghain


221:if (i=0) or (k=32) then matn1:=matn1+chr(233)
else matn1:=matn1+chr(234);//f

222:if (i=0) or (k=32) then matn1:=matn1+chr(235)
else matn1:=matn1+chr(236);//ghaf

223:if (i=0) or (k=32) then matn1:=matn1+chr(237)
else matn1:=matn1+chr(238);//kaf

144:if (i=0) or (k=32) then matn1:=matn1+chr(239)
else matn1:=matn1+chr(240);//gaf

225:if (i=0) or (k=32) then matn1:=matn1+chr(241)
else matn1:=matn1+chr(243);//lam

227:if (i=0) or (k=32) then matn1:=matn1+chr(244)
else matn1:=matn1+chr(245);//mim

228:if (i=0) or (k=32) then matn1:=matn1+chr(246)
else matn1:=matn1+chr(247);//non

230:matn1:=matn1+chr(248) ;//vav

229:if (i=0) or (k=32) then matn1:=matn1+chr(249)
else matn1:=matn1+chr(251);//h_do

237:if (i=0) or (k=32) then matn1:=matn1+chr(252)
else matn1:=matn1+chr(254);//ye

48:matn1:=matn1+chr(128) ;//0
49:matn1:=matn1+chr(129) ;//1
50:matn1:=matn1+chr(130) ;//2
51:matn1:=matn1+chr(131) ;//3
52:matn1:=matn1+chr(132) ;//4
53:matn1:=matn1+chr(133) ;//5
54:matn1:=matn1+chr(134) ;//6
55:matn1:=matn1+chr(135) ;//7
56:matn1:=matn1+chr(136) ;//8
57:matn1:=matn1+chr(137) ;//9
161:matn1:=matn1+chr(138) ;// ,
191:matn1:=matn1+chr(140) ;// ?
40:matn1:=matn1+chr(40) ;// (
41:matn1:=matn1+chr(41) ;// )
47:matn1:=matn1+chr(47) ;// /
32:matn1:=matn1+chr(255) ;// ' '
else
matn1:=matn1+'';
end;
end;

tabdilfe:=matn1;
end;

ehsan2000
پنج شنبه 08 دی 1384, 23:01 عصر
اینم یه مثال
احتمالا فیلد خالی بهش دادیدکه خطا گرفته.

Bahmany عزیز سوالتون رو متوجه نشدم.

Mahdi_S_T
شنبه 10 دی 1384, 13:55 عصر
واقعا عالی بود خیلی ممنون - در ضمن کدپیچ این چیه ؟ ایران سیستم یا سایه ؟

من یه بانک تحت داس دارم که وقتی میخوام تبدیل کنم خطا میده . بانک رو برات میل می کنم یه نگاه بهش بکن .

لطفا ایمیلتو برام بذار

ehsan2000
شنبه 10 دی 1384, 22:24 عصر
خواهش می کنم.:خجالت:
کد پیج ایران سیستمه. البته اگه وقت کنم روی سایه هم کار می کنم.
امیدوارم مفید واقع شده باشه.
en.jalilian2000@gmail.com

Mahdi_S_T
چهارشنبه 21 دی 1384, 09:24 صبح
احسان جان این توابع خیلی کارم رو راه انداخت .
هنوز این دو تابع رو برای سایه آماده نکردی ؟
در ضمن اون بانکی که گفتم درست نشون نمیده به علت خرابی خود بانک بود !
منتظرم ....

شفیعی
چهارشنبه 21 دی 1384, 10:04 صبح
سلام
اینهم تابعی که من نوشته ام البته من برای کارم یک DLL ساختم


library DOSWIN;

uses
SysUtils,
Classes;

{$R *.res}

function FDOSWIN(FDW : STRING):PCHAR; STDCALL;
VAR FD:STRING;
T,T1:INTEGER;
SS:CHAR;
BEGIN
FD:=FDW;
FDW:='';
IF TRIM(FD) <> '' THEN
for t:=0 to length(FD) do
begin
ss:=FD[t];
T1:=Ord(SS);
case T1 of
1..127:
FDW:=FDW+SS;
128: FDW:=FDW+CHR(48);
129: FDW:=FDW+CHR(49);
130: FDW:=FDW+CHR(50);
131: FDW:=FDW+CHR(51);
132: FDW:=FDW+CHR(52);
133: FDW:=FDW+CHR(53);
134: FDW:=FDW+CHR(54);
135: FDW:=FDW+CHR(55);
136: FDW:=FDW+CHR(56);
137: FDW:=FDW+CHR(57);

138: FDW:=CHR(161)+FDW;
139: FDW:=CHR(220)+FDW;
140: FDW:=CHR(191)+FDW;
141: FDW:=CHR(194)+FDW;
142: FDW:=CHR(198)+FDW;
143: FDW:=CHR(193)+FDW;
144: FDW:=CHR(199)+FDW;
145: FDW:=CHR(199)+FDW;
146: FDW:=CHR(200)+CHR(157)+FDW;
147: FDW:=CHR(200)+FDW;
148: FDW:=CHR(129)+CHR(157)+FDW;
149: FDW:=CHR(129)+FDW;
150: FDW:=CHR(202)+CHR(157)+FDW;
151: FDW:=CHR(202)+FDW;
152: FDW:=CHR(203)+CHR(157)+FDW;
153: FDW:=CHR(203)+FDW;
154: FDW:=CHR(204)+CHR(157)+FDW;
155: FDW:=CHR(204)+FDW;
156: FDW:=CHR(141)+CHR(157)+FDW;
157: FDW:=CHR(141)+FDW;
158: FDW:=CHR(205)+CHR(157)+FDW;
159: FDW:=CHR(205)+FDW;
160: FDW:=CHR(206)+CHR(157)+FDW;
161: FDW:=CHR(206)+FDW;
162: FDW:=CHR(207)+FDW;
163: FDW:=CHR(208)+FDW;
164: FDW:=CHR(209)+FDW;
165: FDW:=CHR(210)+FDW;
166: FDW:=CHR(142)+FDW;
167: FDW:=CHR(211)+CHR(157)+FDW;
168: FDW:=CHR(211)+FDW;
169: FDW:=CHR(212)+CHR(157)+FDW;
170: FDW:=CHR(212)+FDW;
171: FDW:=CHR(213)+CHR(157)+FDW;
172: FDW:=CHR(213)+FDW;
173: FDW:=CHR(214)+CHR(157)+FDW;
174: FDW:=CHR(214)+FDW;
175: FDW:=CHR(216)+CHR(157)+FDW;
176..223 : FDW:=CHR(35)+FDW;
224: FDW:=CHR(217)+CHR(157)+FDW;
225: FDW:=CHR(218)+CHR(157)+FDW;
226: FDW:=CHR(218)+CHR(157)+FDW;
227: FDW:=CHR(218)+FDW;
228: FDW:=CHR(218)+FDW;
229: FDW:=CHR(219)+CHR(157)+FDW;
230: FDW:=CHR(219)+CHR(157)+FDW;
231: FDW:=CHR(219)+FDW;
232: FDW:=CHR(219)+FDW;
233: FDW:=CHR(221)+CHR(157)+FDW;
234: FDW:=CHR(221)+FDW;
235: FDW:=CHR(222)+CHR(157)+FDW;
236: FDW:=CHR(222)+FDW;
237: FDW:=CHR(223)+CHR(157)+FDW;
238: FDW:=CHR(223)+FDW;
239: FDW:=CHR(144)+CHR(157)+FDW;
240: FDW:=CHR(144)+FDW;
241: FDW:=CHR(225)+CHR(157)+FDW;
242: FDW:=CHR(225)+CHR(199)+FDW;
243: FDW:=CHR(225)+FDW;
244: FDW:=CHR(227)+CHR(157)+FDW;
245: FDW:=CHR(227)+FDW;
246: FDW:=CHR(228)+CHR(157)+FDW;
247: FDW:=CHR(228)+FDW;
248: FDW:=CHR(230)+FDW;
249: FDW:=CHR(229)+CHR(157)+FDW;
250: FDW:=CHR(229)+FDW;
251: FDW:=CHR(229)+FDW;
252: FDW:=CHR(237)+CHR(157)+FDW;
253: FDW:=CHR(237)+CHR(157)+FDW;
254: FDW:=CHR(237)+FDW;
255: FDW:=CHR(255)+FDW;
end;
end;
FDOSWIN:=PCHAR(FDW);
END;

exports
FDOSWIN;

begin
end.

Mahdi_S_T
چهارشنبه 21 دی 1384, 10:12 صبح
آقای شفیعی این برای سایه است یا ایران سیستم ؟

mathflood
پنج شنبه 21 اردیبهشت 1385, 21:32 عصر
ضمن تشکر از دوستی که کد مبدل این کدپیج عهد دقیانوس را نوشته، من برای نیاز خودم کد را در PHP بازنویسی کردم، گفتم شاید به درد دیگران هم بخورد، لازم به ذکر است که این کد با رشته های ترکیبی انگلیسی و فارسی مشکلی ندارد.

مهرداد



function irsys2ar($x)
{
$i=-1;$j=0;$k=0;$_k2=0;$matn1='';$mat2='';$mat3='';
while (strlen($x)>= $i)
{
$i=$i+1;
$j=ord($x{strlen($x)-$i});

$k=ord($x{strlen($x)-$i+1});
$_k2=ord($x{strlen($x)-$i-1});


// ShowMessage(inttostr($j));
switch($j)
{
case 141:$matn1.=chr(194) ; break;
case 198:$matn1.=chr(142) ; break;
case 143:$matn1.=chr(193) ;//hamzeh
break;
case 145:
case 144: $matn1.=chr(199); break;

// 144: $matn1.=chr(199);

case 146:
if ($_k2!=255)
$matn1.=chr(200).chr(32);
else
$matn1.=chr(200);
break;

case 147: $matn1.=chr(200); break;
case 148:
if ($_k2!=255)
$matn1.=chr(129).chr(32);
else
$matn1.=chr(129);
break;
case 149: $matn1.=chr(129); break;

case 150:
if ($_k2!=255)
$matn1.=chr(202).chr(32) ;
else
$matn1.=chr(202);
break;
case 151:
$matn1.=chr(202);//t
break;

case 152:
if ($_k2!=255)
$matn1.=chr(203).chr(32) ;
else
$matn1.=chr(203);
break;
case 153: $matn1.=chr(203);//sth
break;

case 154:
if ($_k2!=255)
$matn1.=chr(204).chr(32);
else
$matn1.=chr(204);
break;
case 155: $matn1.=chr(204);//gim
break;

case 156:
if ($_k2!=255)
$matn1.=chr(141).chr(32);
else
$matn1.=chr(141);
break;
case 157: $matn1.=chr(141);//ch
break;

case 158:
if ($_k2!=255)
$matn1.=chr(205).chr(32);
else
$matn1.=chr(205);
break;
case 159:
$matn1.=chr(205);//h gimi
break;

case 160:
if ($_k2!=255)
$matn1.=chr(206).chr(32);
else
$matn1.=chr(206);
break;
case 161: $matn1.=chr(206);//kh
break;

case 162: $matn1.=chr(207);//d
break;
case 163: $matn1.=chr(208);//zth
break;
case 164: $matn1.=chr(209);//r
break;
case 165: $matn1.=chr(210);//z
break;
case 166: $matn1.=chr(142);//zgh
break;
case 167:
if ($_k2!=255)
$matn1.=chr(211).chr(32);
else
$matn1.=chr(211);
break;
case 168: $matn1.=chr(211);//sin
break;
case 169:
if ($_k2!=255)
$matn1.=chr(212).chr(32);
else
$matn1.=chr(212);
break;
case 170: $matn1.=chr(212);//shin
break;

case 171:
if ($_k2!=255)
$matn1.=chr(213).chr(32);
else
$matn1.=chr(213);
break;

case 172: $matn1.=chr(213);//sad
break;

case 173:
if ($_k2!=255)
$matn1.=chr(214).chr(32);
else
$matn1.=chr(214);
break;
case 174: $matn1.=chr(214);//zad
break;

case 175:
if (($_k2=145) || ($_k2=227) || ($_k2=231) || ($_k2=250))
$matn1.=chr(216);
else
$matn1.=chr(216).chr(32);//ta
break;
case 224:
if (($_k2!=255) && ($_k2!=145))
$matn1.=chr(217).chr(32);
else
$matn1.=chr(217);//za

break;
case 225:
case 226:
if ($_k2!=255)
$matn1.=chr(218).chr(32);
else
$matn1.=chr(218);
break;
case 227:
case 228:
$matn1.=chr(218);//ain
break;

case 229:
case 230:
if ($_k2!=255)
$matn1.=chr(218).chr(32);
else
$matn1.=chr(219);
break;
case 231:
case 232:
$matn1.=chr(219);//ghain
break;

case 233:
if ($_k2!=255)
$matn1.=chr(221).chr(32);
else
$matn1.=chr(221);
break;
case 234:
$matn1.=chr(221);//f
break;

case 235:
if ($_k2!=255)
$matn1.=chr(222).chr(32);
else
$matn1.=chr(222);
break;
case 236:
$matn1.=chr(222);//ghaf
break;

case 237:
if ($_k2!=255)
$matn1.=chr(223).chr(32);
else
$matn1.=chr(223);
break;
case 238: $matn1.=chr(223);//kaf
break;

case 239:
if ($_k2!=255)
$matn1.=chr(144).chr(32);
else
$matn1.=chr(144);
break;
case 240: $matn1.=chr(144);//ghaf
break;

case 241:
if ($_k2!=255)
$matn1.=chr(225).chr(32);
else
$matn1.=chr(225);
break;
case 243:
$matn1.=chr(225);//lam
break;

case 242:
$matn1.=chr(225).chr(199);//la
break;
case 244:
if ($_k2!=255)
$matn1.=chr(227).chr(32);
else
$matn1.=chr(227);
break;
case 245:
$matn1.=chr(227);//mim
break;

case 246:
if ($_k2!=255)
$matn1.=chr(228).chr(32);
else
$matn1.=chr(228);
break;
case 247: $matn1.=chr(228);//non
break;

case 248: $matn1.=chr(230);//vav
break;

case 249:
if ($_k2!=255)
$matn1.=chr(229).chr(32);
else
$matn1.=chr(229);

break;
case 250:
case 251: $matn1.=chr(229);//h
break;

case 252:$matn1.=chr(237).chr(32); break;
case 253:
if ($_k2!=255)
$matn1.=chr(237).chr(32);
else
$matn1.=chr(237);
break;
case 254: $matn1.=chr(237);//non
break;

case 128:$matn1.=chr(48) ;//0
break;
case 129:$matn1.=chr(49) ;//1
break;
case 130:$matn1.=chr(50) ;//2
break;
case 131:$matn1.=chr(51) ;//3
break;
case 132:$matn1.=chr(52) ;//4
break;
case 133:$matn1.=chr(53) ;//5
break;
case 134:$matn1.=chr(54) ;//6
break;
case 135:$matn1.=chr(55) ;//7
break;
case 136:$matn1.=chr(56) ;//8
break;
case 137:$matn1.=chr(57) ;//9
break;

case 37:$matn1.=chr(37) ;//.
break;
case 42:$matn1.=chr(42) ;//%
break;
case 45:$matn1.=chr(45) ;//-
break;
case 46:$matn1.=chr(46) ;//.
break;

case 48:$matn1.=chr(48) ;//0
break;
case 49:$matn1.=chr(49) ;//1
break;
case 50:$matn1.=chr(50) ;//2
break;
case 51:$matn1.=chr(51) ;//3
break;
case 52:$matn1.=chr(52) ;//4
break;
case 53:$matn1.=chr(53) ;//5
break;
case 54:$matn1.=chr(54) ;//6
break;
case 55:$matn1.=chr(55) ;//7
break;
case 56:$matn1.=chr(56) ;//8
break;
case 57:$matn1.=chr(57) ;//9
break;

case 138:$matn1.=chr(161) ;// ,
break;
case 140:$matn1.=chr(191) ;// ?
break;
case 40:$matn1.=chr(40) ;// (
break;
case 41:$matn1.=chr(41) ;// )
break;
case 47:$matn1.=chr(47) ;// /
break;
case 255:$matn1.=chr(32) ;// ' '
break;

default:
$matn1.=chr($j);
}
// ShowMessage($matn1);
}
//

///
$mat2='';$mat3='' ;

for($i=0;$i<strlen($matn1);$i++)
{
// ShowMessage(matn{$i});
if(strpos("1234567890/\'\\-()[]:{}&#!~,;?|.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnop qrstuvwxyz ",$matn1{$i})===false)
{
if(strlen($mat2)>0)
{
$mat3=$mat3.$mat2.$matn1{$i} ;
$mat2='';
}
else
$mat3=$mat3.$matn1{$i} ;
}
else
{

if ($matn1{$i}=='(')
$matn1{$i}=')';
else
if ($matn1{$i}==')')
$matn1{$i}='(';
$mat2=$matn1{$i}.$mat2;
}
}


return trim($mat3.$mat2);
}

hbahjat
پنج شنبه 23 آذر 1385, 18:09 عصر
با سلام خدمت دوستان می خواستم ببینم هیچکس این کد تبدیل از ویندوز به داس را توی VB6نداره . با تشکر

Saeid59_m
شنبه 25 آذر 1385, 08:01 صبح
من اینکار رو با مبدل پارسا 99 انجام می دادم
دیگه نیازی به برنامه نویسی نبود

zohreh_r
یک شنبه 08 اردیبهشت 1387, 15:09 عصر
با سلام
این کد را در کجا بنویسم

moradi_am
سه شنبه 10 اردیبهشت 1387, 11:35 صبح
براي تبديل فونت سايه كسي تابعي سراغ نداره ؟ (تبديل سايه به ايران سيستم يا سايه به ويندوز)

alireza85
چهارشنبه 15 خرداد 1387, 08:16 صبح
سلام
تبديل اين ديتابيس كسي داره ؟؟؟

javid_rally
شنبه 09 بهمن 1389, 21:28 عصر
با عرض سلام و خسته نباشی خدمت دوستان
من با دلفی 7 یک نرم افزار برای مطب نوشتم که حدود 2 ماه وقتمو گرفت ولی موقع تحویل متوجه شدم که دکتر باید اطلاعات بیمه رو به صورت یک فایل txt که اصطلاحا بهش میگن دیسکت بیمه تحویل بده.که اسمشم فکر کنم باید NOS1.txtباشه. من چند تا فایل txt که با نرم افزار های دیگه ساخته شده بود رو دیدم که متن عجیبی داشت منم ازش چیزی نفهمیدم بعد متوجه شدم که اداره بیمه این فایل رو بوسیله یک برنامه تحت dos باز میکنه .حالا من موندم چطوری یک همچین خروجی از برنامه ام بگیرم ؟البته چند تا سئوال دیگه هم دارم.
1. این فایل txt از report برنامه هست یا اطلاعات داخل بانک؟
2. چطور می تونم این فایل txt رو تو دلفی بسازم ؟
3. اطلاعاتی که بیمه میخواد باید بر اسا س فیلد ها و نام فیلد خاصی باشد؟یعنی نام فیلدها توسط بیمه تعریف شده و مشخص شده می باشد؟
4.برای این تبدیل از الگوریت خاصی باید تبعیت کرد؟
5. جریان این فایلها dbf چیه؟و چطور باید تو برنامه ام ازش استفاده کنم؟
در ضمن ممنون میشم اگر دوستان سورس و نمونه برنامه ای دارن بزارن .
من نمونه کدی که صفحه های قبل بوده رو آزمایش کردم ولی خروجیش با فایل txt ی که من نمونشو دیدم فرق داشت . باتشکر فراوان
**** راستی یکی بگه چطوری میتونم فایلمو اینجا بزارم تا بقیه بتونن دانلود کنن؟***

BORHAN TEC
یک شنبه 10 بهمن 1389, 17:30 عصر
**** راستی یکی بگه چطوری میتونم فایلمو اینجا بزارم تا بقیه بتونن دانلود کنن؟***
برای این کار در پایین کادری که پستت رو در اون می نویسی بر روی حالت پیشرفته کلیک کن و برای ارسال فایل در صفحه ای که باز می شه با استفاده از قصمت ضمیمه نسبت به ارسال فایل اقدام کن.
فایلت رو قرار بده. ما هم هر کمکی که از دستمون بر بیاد انجام می دیم. :چشمک:

javid_rally
یک شنبه 10 بهمن 1389, 18:18 عصر
اینم فایل txt ی که گفتم البته یک نرم افزار هم دانلود کردم که رایگانه ولی چون حجمش کمی بالاست تو این
سایت نتونستم بزارم ولی تو سایت دیگه ای آپلود میکنم بعد لینکشو میزارم این فایل خروجی همون برنامه است:
65738

javid_rally
یک شنبه 10 بهمن 1389, 18:49 عصر
اینم لینک دانلود نرم افزاری که گفتم و فایل خروجیشو بالا گذاشتم:
http://rapidshare.com/files/445315338/Bimeh_Pardis_2.3.7.zip

ممنون میشم اگه زودتر جواب بدین خیلی وقته که دنبالشم و خیلی جاهارو گشتم ولی جواب مناسبی پیدا نکردم .