PDA

View Full Version : تغییر در فیلدهای کارکتری



majjjj
چهارشنبه 03 بهمن 1386, 10:22 صبح
من یک بانک فاکس 2.6 داس دارم میخواهم هر چی خیابان دستغیب داخل بانک هست رو به
خیابان ستاری تغییر بدم چکار کنم
البته میدونم که میشه با دستور زیر همه خیابانهای دستغیب رو پیدا کرد حالا میخواهم بدونم چجوری باید اونها رو repl کرد


brow for "خیابان دستغیب" $ adres

mehran_337
چهارشنبه 03 بهمن 1386, 11:05 صبح
Replace all FLDstreet with "satari" for alltrim(FLDstreet) = "dastgheib"


که البته FLDstreet نام فیلدیست که خیابانها در آن ثبت شده است

majjjj
چهارشنبه 03 بهمن 1386, 11:11 صبح
Replace all FLDstreet with "satari" for alltrim(FLDstreet) = "dastgheib"


که البته FLDstreet نام فیلدیست که خیابانها در آن ثبت شده است

سلام
دستوری که شما نوشتین مربوط به موقعی است که کل فیلد تغییر میکنه من میخواهم فقط کلمات داخل این فیلد تغییر کنه که نام خیابانشان دستغیب است

rezaTavak
چهارشنبه 03 بهمن 1386, 17:23 عصر
باید با تابع at مشخص کنید که در چه رکوردی این چیزی که می خواهید وجود دارد. سپس با تابع stuff آنرا تغییر دهید.



lcPreStreet = 'Dastgheib'
lcNewStreet='Satari'
REPLACE cAddress WITH STUFF(cAddress,AT(lcPreStreet,cAddress),LEN(lcPreS treet),lcNewStreet) FOR AT(lcPreStreet,cAddress) > 0


البته این کد را من تست نکرده ام (توی لینوکسم و فاکس درست جواب نمیده) و خودتان با دقت آنرا بکار ببرید.

kia1349
چهارشنبه 03 بهمن 1386, 19:32 عصر
از strtran و یا chrtran هم میتونی استفاده کنی

majjjj
پنج شنبه 04 بهمن 1386, 11:41 صبح
ممنون از دستورات فوق استفاده میکنم
انشاءالله مشکل حل بشه

mehran_337
پنج شنبه 04 بهمن 1386, 13:56 عصر
Replace all FLDstreet with strtran(fldStreet,'dastgheib',"satari") for at("dastgheib",FLDstreet) >0