PDA

View Full Version : خواندن از یک فایل text بهم ریخته



cs_mania
دوشنبه 25 شهریور 1387, 09:31 صبح
فرض کنید که یک بانکی هر روز یک فایل text حاوی اطلاعات مشتریانش در اختیار ما قرار می دهد که مثلا شامل اسم و شماره حساب و دیگر مشخصات می باشد.

ما باید روزانه این فایل ها را بخوانیم و در دیتا بیس خودمان ذخیره کنیم.

مشکلی که در اینجا من دارم این است که در این فایل اطلاعات مشتریان به فارسی نوشته شده است و وقتی به سیستم من میرسد نوشته ها به صورت میخی در می آیند.

میشه لطفا راهنماییم کنید که چه کاری باید انجام بدم تا اطلاعات را به صورت صحیح از این فایل بخوانم و در دیتابیس ذخیره کنم ؟

ممنون

babak.h
دوشنبه 25 شهریور 1387, 12:31 عصر
اگر برای کسی که اون فایل متنی رو تولید می کنه مقدور هست که فرمت اون رو تغییر بده، ازش بخواید که اونو یونیکد (unicode) کنه و به شما تحویل بده. در غیر این صورت باید بپرسید که از چه سیستم کدی استفاده می کنه (مثلا ایران سیستم یا ... ) و بعد باید یه برنامه برای تبدیل اون سیستم به یونیکد بنویسید. در صورتی که فرمت اون متن فرمت رایجی باشه ( من در آوردی! نباشه) می تونید convertor هایی برای این کار با جستجو در اینترنت پیدا کنید.

موفق باشید

h.jaza
دوشنبه 25 شهریور 1387, 13:10 عصر
بابک جان فکر نمی کنم اینی که شما میگی خیلی درست باشه. چرا که روی سیستم مبدا همونجوری که cs_mania (http://barnamenevis.org/forum/member.php?u=14523) گفته اطلاعات به صورت فارسی هستش نه به صورت کد پس روی اون سیستم مشکلی وجود نداره. ولی روی سیستم مقصد که برنامه نصب هستش و می خواد یسری عملیات رو انجام بده، احتمالا اون سیستم مشکلی داره. این مشکل می تونه به نبودن اون فونت خاص روی سیستم یا تنظیم نبودن یونیکده دیتابیس و یا ... مرتبط بشه.

در کل شما بهتره اول از تنظیمات سیستم مبدا که به یه چک یونیکد بودن و اسم فونت خاص منتهی میشه شروع کنی و بعد روی سیستم مقصد بسته به شرایط رفتار کنی.

babak.h
دوشنبه 25 شهریور 1387, 13:42 عصر
... روی سیستم مبدا همونجوری که cs_mania (http://barnamenevis.org/forum/member.php?u=14523) گفته اطلاعات به صورت فارسی هستش نه به صورت کد پس روی اون سیستم مشکلی وجود نداره...فکر کنم شما اشتباه متوجه شدید. منظور از کد، سیستم encoding اون متن هست. مثلا فارسی یونیکد یک سیستم کدینگ است که متشکل از یک مجموعه کاراکتر (character set) و یک script برای رفتار با اون متن است (مثلا راست به چپ بودن زبان فارسی و ... که اون را از زبان انگلیسی متمایز می کنه).

سیستم های نرم افزاری قدیمی (قبل از آمدن یونیکد) ، از استاندارد های مختلفی استفاده می شده و بعضا هر شرکتی برای خودش یک سیستم کدینگ فارسی داشته که برنامه هاش رو با اون سیستم می نوشته از قبیل ایران سیستم ، پروین و ...

هنوز هم بسیاری از سیستم های موجود در شرکت ها ، ادارات دولتی ، بانک ها و ... از همچین استاندارد هایی استفاده می کنند. و مسئله تبدیل متن ها از یک استاندارد به استاندارد دیگه مسئله ی رایجی در گذشته بوده و الان هم تا حدود زیادی وجود داره (در هنگام تعامل با سیستم ها قدیمی)

مثلا من خودم چند ماه پیش روی یک سیستمی کار می کردم که متعلق به آموزش و پرورش بود و اون سیستم اطلاعاتی رو در قالب یک فایل متنی export می کرد که من در برنامه ام از اونها استفاده می کردم. در اونجا من ابتدا اطلاعات رو به کدینگ ایران سیستم و بعد به یونیکد تبدیل می کردم.

البته ممکنه مسئله ای که اینجا مطرح شد به اون سادگی که شما فرمودید باشه و با تغییر تنظیمات درست بشه.

موفق باشید

h.jaza
دوشنبه 25 شهریور 1387, 14:11 عصر
فکر کنم شما اشتباه متوجه شدید. منظور از کد، سیستم encoding اون متن هست. مثلا فارسی یونیکد یک سیستم کدینگ است که متشکل از یک مجموعه کاراکتر (character set) و یک script برای رفتار با اون متن است (مثلا راست به چپ بودن زبان فارسی و ... که اون را از زبان انگلیسی متمایز می کنه).

سیستم های نرم افزاری قدیمی (قبل از آمدن یونیکد) ، از استاندارد های مختلفی استفاده می شده و بعضا هر شرکتی برای خودش یک سیستم کدینگ فارسی داشته که برنامه هاش رو با اون سیستم می نوشته از قبیل ایران سیستم ، پروین و ...

هنوز هم بسیاری از سیستم های موجود در شرکت ها ، ادارات دولتی ، بانک ها و ... از همچین استاندارد هایی استفاده می کنند. و مسئله تبدیل متن ها از یک استاندارد به استاندارد دیگه مسئله ی رایجی در گذشته بوده و الان هم تا حدود زیادی وجود داره (در هنگام تعامل با سیستم ها قدیمی)

مثلا من خودم چند ماه پیش روی یک سیستمی کار می کردم که متعلق به آموزش و پرورش بود و اون سیستم اطلاعاتی رو در قالب یک فایل متنی export می کرد که من در برنامه ام از اونها استفاده می کردم. در اونجا من ابتدا اطلاعات رو به کدینگ ایران سیستم و بعد به یونیکد تبدیل می کردم.

البته ممکنه مسئله ای که اینجا مطرح شد به اون سادگی که شما فرمودید باشه و با تغییر تنظیمات درست بشه.

موفق باشید
بابک جان منظوره منو رو اشتباه فهمیدی. منظورم از کد، همون خط میخی ای بود که cs_mania (http://barnamenevis.org/forum/member.php?u=14523) گفته بود نه چیز دیگه ای. اشتباه نکن.

راستی این نکاتی رو هم که راجع به یونیکد گفتی، فکر میکنم عموما بلد باشن.:لبخندساده:

cs_mania
دوشنبه 25 شهریور 1387, 15:00 عصر
فایلی که به من داده میشه با فرمت fd هستش ، با convertor خاصی باید تبدیلش کنم تا بتوم ازش استفاده کنم ؟

h.jaza
جمعه 29 شهریور 1387, 23:51 عصر
من همچین فرمتی نمی شناسم. احتمالا اونا قبل از اینکه اطلاعات رو به برنامت بفرستن با یه برنامه ی دیگه، اونو به صورت خاص ذخیره می کنن و در نتیجه ادامه ی کار معلومه (از اینکه دنبال Convert کردنش احتمالا نباید رفت و ...). اگر بتونی از اون بانک فایل رو به صورت تکست (txt.*)، دیگه نباید مشکلی داشته باشی.