2011-01-08 13 views
1

基本的にJoomla Virtuemartからcsvファイルをエクスポートしました。タスクは、すべての行の通貨を新しい通貨に変換することです。私たちはEEK(エストニア語)を使用していましたが、その年からEEKよりも15.64664倍大きいEUR(ユーロ)を使いました。だから、私は15.64664で各行の古い価格をEURに変換し、以前と同じようにファイルを出力しなければならないが、価格が変わったことを知る必要がある。csv形式ファイルの各行で特定の値を変更するJavaコード

基本的に私の考え方は、価格を取って別の配列に入れ、これらを15.64664で割り、適切な場所にcsv形式の行に新しい値を書き戻すことでした。最初の行は、名前の区切り文字(〜)とフィールド区切り文字(^)とフィールド名である

~product_sku~^~product_parent_sku~^~category_path~^~product_name~^~product_s_desc~^~product_desc~^~product_price~^~product_full_image~^~product_thumb_image~^~product_availability~^~product_available_date~^~product_currency~^~product_discount~^~product_discount_date_end~^~product_discount_date_start~^~product_packaging~^~product_publish~^~product_special~^~product_tax~ 
~000358~^~~^~IT SEADMED (tellimisel)/Computing/PC Components/PSU~^~Codegen power supply ATX PSU 350W V2.03 P4 CE PFC PSU (SILENT/ 1~^~~^~Codegen power supply ATX PSU 350W V2.03 P4 CE PFC PSU (SILENT/ 12cm fan)~^~43.33~^~http://s3.acme.lt/products/000358/photos/large/1.jpg~^~http://s3.acme.lt/products/000358/photos/small/1.png~^~~^~13/10/2010 00:00:00~^~EUR~^~~^~~^~~^~0~^~Y~^~~^~20.00~ 
~000390~^~~^~IT SEADMED (tellimisel)/Computing/Peripherals/Keyboards~^~Chicony multimedia keyboard KU-0420, LT/RUS, USB, 17 multimedia ~^~~^~Chicony multimedia keyboard KU-0420, LT/RUS, USB, 17 multimedia hotkeys, slim shape design, thin keycaps, silver/black~^~27.50~^~http://s3.acme.lt/products/000390/photos/large/1.jpg~^~http://s3.acme.lt/products/000390/photos/small/1.png~^~~^~~^~EUR~^~~^~~^~~^~0~^~Y~^~~^~20.00~ 

ファイルはこのようになります(ここでは3つの別々のラインです)。あなたが見ることができるように、価格はフィールド名の7番目にあります。 価格の値を取るJavaコードを書くことは可能です(2行目から始まり、フィールドと名前の区切り文字なしで)配列に配置します。その配列のすべての値は15.64664で除算され、その後、古い価格の値は新しい分割され、フォーマットされた(2つの小数点以下の)値に置き換えられますか?

重要な場合は、.txtファイルまたは.csvファイルからデータを読み取ることができます。

誰かが私を正しい方向に向けることができれば、感謝します。 :)

答えて

2

ファイルを1行ずつ読み込み、正規表現を使用して価格を計算し、計算して新しい価格で別のファイルに書き戻します。

Javaにする必要がありますか?これはJavaで簡単に行うことができますが、perl/ruby​​とPythonはこれらのものではより良い方法です(コードの行数は少なくて済みます)。

3

OpenCSVライブラリを試すことができます。また、サイト上にサンプルコードがあります。

3

Microsoft Excelまたは他のスプレッドシートプログラムでファイルをインポートしてから、新しい列または同じ列に変更を加えてCSVファイルとしてエクスポートできます。

これはかなり速くなければなりません。

関連する問題