初めまして、超→初心者@クラークともうします。
現在、悩みに悩んでいるので皆様の知恵を借りたいと思い
質問させていただきます。
現在、xlsファイルを読み込み各セル(1行)を一列にし、txtファイルに出力するプログラムを作成していて悩んでいます。
うまくxlsファイルを読み込ませ、txtファイルにする方法は無いでしょうか?
過去ログも調べ、いろいろを試して見たのですが、知識不足のためいまいち理解できていません。
xlsファイルをcsvファイルにして、読み込ます方法も試したのですが、
データに空欄があり、Comma.textで読み込むとスペースで区切られてしまい、うまく出力できませんでした。
xlsファイル(読み込み) → txtファイル(出力)
|-A-|-B-|-C-|
|123 |A A |TEXT| 1行目: 123 A A TEXT
-------------------
|2222|VVVV|BBBB| 2行目: 2222VVVVBBBB
というような形にて出力したいと思います。
皆様のお力お貸しください。
よろしくお願いします。
OS:WIN2000 * Delphi6
どんな風に読み込み、どこが気に入らないのか
詳しく書いて頂かないと、答えようがありません。
HOtaさん、こんにちわ。
読み込み方としては、xlsファイルの1行目・Aセル→Bセル→Cセル
次に2行目・Aセル→Bセル→Cセル・・・ラスト行まで。
という風に読み込ませます。
よろしくお願いします。
なにもソースを書いていないので、どのようにしているのか判りませんが、
for i = 1 to ラスト行 do
begin
for j = 1 to 3 do
begin
セルの出力('''' + セルの内容 + ''',';)
end;
改行;
end;
>データに空欄があり、Comma.textで読み込むとスペースで区切られてしまい
勝手にくぎったりせん。
区切るような読込してるんや。
どないなソースなんかわからへんので回答できまへん。
一般には
CSVテキスト(CSV「カンマ区切り」)やったら
TStringList で読み込んで
1ラインずつ処理する。
S := StrList.Strings[i - 1];
各項目は
GetS := (S, 1, Pos(',', LineStr) - 1);
スペースなんてまったく関係なし。
> 勝手にくぎったりせん。
> 区切るような読込してるんや。
うーーん。
状況しだいでは勝手に区切ったように感じる場合もあるのでは?
私も過去にこれで悩んだことがありました。
ソースが掲載されてないので何ともいえませんが、
TStringListのCommaTextを用いているのであれば、
半角スペースも区切り文字として認識される仕様になってると思います。
(最新のDelphiは知りませんが、少なくても私が使っている6においてはそうです)
<参照レス>
https://www.petitmonte.com/bbs/answers?question_id=1611
質問者の文章を読む限り、xlsの読み込み自体は成功してるっぽいので、
あとは半角スペースの処理をどうするか?だけなのだと思います。
・・・またしても、どやさ氏への反論になってしまいましたが、
他意は無いのでご了承を。
それと、質問者の超→初心者@クラークさんも
ソースを出さず、たったこれだけの情報しか公開しないのであれば、
ほしい解答を得られないと思いますよ。
質問の仕方をもうちょっと考えましょう。
ツイート | ![]() |