VB等からCSVファイルを生成する際に文字情報の中に含まれる
禁則文字 (例:カンマ等) をチェックする必要がありますが、
考えられる範囲ではカンマしか思いつきませんでした。
他にチェックする文字列はありますでしょうか?
CSVファイルを生成する際の禁則文字を教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

テキストボックスで入力された文字列をCSVファイルに落とすということで回答します。



コントロール文字はテキストボックスに入力できないので禁則する必要はありません。
文字列をダブルクォーテーションで括るならば、カンマは禁則文字ではありません。
よってダブルクォーテーションのみを禁則すればいいと思います。

以上は一般論です。細かいところは受け側のアプリの仕様に依存すると思います。
    • good
    • 0

 ASCII 以外のコントロール文字?

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q手書きでデザインした文字やロゴをデジタル化するソフト

手書きでデザインした文字や簡単な絵というか、
ロゴマークみたいなのをスキャナに取り込んで、
デジタル化したいのですが、
Illustratorは高くて買えません。
ベクトル画像でレイヤーが使えて使い方が簡単な
ソフトがあれば教えてください。
そんな都合のいいものはないのでしょうか?
無ければ、無いと教えていただきたいのですが・・・
PhotoshopElementsは使っているのですが、
限界を感じています。

Aベストアンサー

PaintShopPro7・Paintgraphic両方とも低価格でパスを扱えます。PaintShopProは最新版は9ですがパスや印刷プレビューの使い勝手が改悪された上動作が重くなっているので安く軽い7を推奨します。

PaintShopPro7・Paintgraphic両方ともElementsにないチャンネル・パス・トーンカーブ・マスクがありますしレイヤーも当然使えます。PaintShopPro7はイラストレーターのようにフォントをアウトライン化してベクターオブジェクトとしていじることができます。

>>手書きでデザインした文字や簡単な絵というか、
ロゴマークみたいなのをスキャナに取り込んで、
デジタル化したいのですが、
>>ベクトル画像でレイヤーが使えて使い方が簡単

はもちろんPaintShopPro7・Paintgraphicのどちらでも可能です。ただしPaintgraphicは価格は安いですが中上級者向きのソフトです。レタッチソフト初心者でなくてもマニュアルつきを購入したほうが無難です。PaintShopPro7はPDFとフラッシュによる動画マニュアルおよび絵入りのヘルプ画付属するので解説書は特に必要ないです。
PSP ver.7と6解説
http://www.seiai.ed.jp/t2000/psp7t2/index.html
http://www.seiai.ed.jp/t2000/psp/index.html

Paintgraphic
http://www.sourcenext.com/products/paint/
http://piro.sakura.ne.jp/latest/flakes/035kid.html
PaintgraphicとPhotoshopLEの比較
http://ojakan2.hp.infoseek.co.jp/cgtips_pg.html
PaintShopPro7
(http://www.amazon.co.jp/exec/obidos/ASIN/B0006IX6Z2/qid%3D1123834561/sr%3D1-1/ref%3Dsr%5F1%5F10%5F1/249-6805767-8787515)

PaintShopPro7・Paintgraphic両方とも低価格でパスを扱えます。PaintShopProは最新版は9ですがパスや印刷プレビューの使い勝手が改悪された上動作が重くなっているので安く軽い7を推奨します。

PaintShopPro7・Paintgraphic両方ともElementsにないチャンネル・パス・トーンカーブ・マスクがありますしレイヤーも当然使えます。PaintShopPro7はイラストレーターのようにフォントをアウトライン化してベクターオブジェクトとしていじることができます。

>>手書きでデザインした文字や簡単な絵というか、
...続きを読む

QCSV書込みの際、カンマで位置がずれる

VB.NET初心者です
変数に必要なデータを入れて、それをCSVに書き込もうとしているのですが、
データの中にカンマを含むものが存在して、
エクセルで開くと本来1セルでよいところが、2セル使って
他の行と比べるとずれてしまいます

たとえば、A~Eを変数として

A=あ
B=い,い
C=う
D=え
E=お

というデータがあって、それをA,B,C,D,Eの順に
横一列でCSVにした場合

「あ い,い う え お」

と5列にしたいところが、

「あ い い う え お」

と6列になってしまうのです。
これはどのように解決すればよいでしょうか?
どうかご教授願います。


[開発環境]
WinXPPRO/VB.NET2003/Excel2000

Aベストアンサー

確かに・・・

strCsvData = """A"""
strCsvData += ","
strCsvData += """B"""
strCsvData += ","
strCsvData += """C"""
strCsvData += ","
strCsvData += """D"""
stbCsvData += ","
stbCsvData += """E"""

だと "A","B","C","D","E" となりますね。

何故か・・・それは A~E を変数として記述してないからです。
わかりやすく言うと "" でくくった A は文字列として認識されます。
変数として利用したい場合は A を変数として使ってあげる必要があるのです。

strCsvData = """
strCsvData += A
strCsvData += """
strCsvData += ","
strCsvData += """
strCsvData += B
strCsvData += """
strCsvData += ","
strCsvData += """
strCsvData += C
strCsvData += """
strCsvData += ","
strCsvData += """
strCsvData += D
strCsvData += """
stbCsvData += ","
stbCsvData += """
strCsvData += E
strCsvData += """

このようにすれば A~E を変数として使ってあげることになります。

いくら A~E を変数として宣言しても "A" と A は違う物です。
"A" は文字列「A」、A は変数「A」です。

---------------------------------------------------------------
わかりにくい場合のテストコード

Dim strTest As String
Dim strData As String

'「文字列」を変数に格納
strTest = "文字列"
'(1) strDataには「文字列」が格納される
strData = strTest
'(2) strDataには「strTest」が格納される
strData = "strTest"

'(1)では strTest を変数として利用、(2)では strTest という文字列として利用

デバッグしてみて下さい。

確かに・・・

strCsvData = """A"""
strCsvData += ","
strCsvData += """B"""
strCsvData += ","
strCsvData += """C"""
strCsvData += ","
strCsvData += """D"""
stbCsvData += ","
stbCsvData += """E"""

だと "A","B","C","D","E" となりますね。

何故か・・・それは A~E を変数として記述してないからです。
わかりやすく言うと "" でくくった A は文字列として認識されます。
変数として利用したい場合は A を変数として使ってあげる必要があるのです。

strCsvData = """...続きを読む

Q手書き文字&イラストをデザインに取り込みたい

手書き、もしくはスタンプでの文字(やイラスト)を
イラストレーターやフォトショップに取り込んで、

その後、ソフトでまた加工、レイアウトしたりして

(文字の書いてある紙の色や質感などは残さずに、
文字(結構細かい)だけをとりこんで、
ファイルにレイアウトしたいのです。)

印刷物にしたいのですが、取り込み方の方法が
いまいちわかりません。。

どなたか知っている方、
いらっしゃいましたらよろしくお願い致します。


ちなみにIllustrator9.0、photoshop5.5を使用しています。

Aベストアンサー

流れとしては
1.手書き等の文字をスキャナで大きめに取り込む(フォトショップ)
2.取り込んだ画像を文字の部分とその他の部分がはっきり分かれるようコントラストを強くして保存。必要に応じて消去したり白黒2階調にしたり、抽出したり技術を要します。(フォトショップ)
3.さきほど保存しておいたデータをイラストレータの書類に配置。
オートトレースツールで輪郭をトレース。大きい画像のほうがトレースしたときのあらがでにくいです。うまくいかない場合環境設定のオートトレースのところを調節してください。このツール、非常にアバウトで、うまくいくかどうか疑問ですが・・・^^:
(イラストレーター)
4.貼り付けた画像を削除
こうすれば文字の部分が図形になるはずなので拡大縮小、変形など自由にできます。
なお、3の部分ですが、アドビのストリームラインというソフトをお持ちでしたらそちらで簡単に精密に輪郭をトレースできます。

QUNICODE文字が含まれているかのチェック

お世話になります。

VBAを使用して、
セルに、UNICODEE文字が含まれているかのチェックをしたいと考えております。
・できれば、どの文字がUNICODE文字かどうか知りたい。
・最低でもどのセルにUNICODE文字が含まれているか知りたい
という形ですが、もし、ご存知の方教えて頂けないでしょうか?


宜しくお願い致します。

Aベストアンサー

#2の回答者です。
>最低でもどのセルにUNICODE文字が含まれているか知りたい
ということで、#2のユーザー定義関数を利用した、シート全体を探すマクロを加えておきます。どちらも、標準モジュールを使います。

'//
Sub Macro_8996251()
Dim Rng As Range
Dim c As Variant
On Error Resume Next
Set Rng = ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, 23)
If Err() <> 0 Then Exit Sub
On Error GoTo 0
For Each c In Rng.Cells
 If CheckUNICODE(c.Value) = 1 Then
   c.Interior.ColorIndex = 3
 End If
Next c
End Sub
'///

Qパソコン上で手書き文字などを保存したいのですが。

パソコン上での手書きについてお聞きします。

マウスで、簡単な文字なり絵を描いて、それを保存したいのです。
できるのでしょうか?

手書き認識ではありません。すなわち、今、IME、ATOK,を
使用しています。このソフトは、マウスで描いた手書き文字を
漢字等に変換してくれます。しかし、この「変換」まではいらないのです。
マウスで描いた手書き文字等をそのまま保存したいのです。

Vista(Home)を使用しています。
標準搭載の「Tablet PC 入力パネル」でできるでしょうか?

何か、いい方法はありますか?

どうかよろしくお願いいたします。

Aベストアンサー

文字や絵を何かの文章で文字同様に利用するわけでなければ画像として残しておくことはできます。No.1の方のお返事通りペイントでもいいですし、売っているソフトでもいいですし、VistaならWindows Journalというソフトが標準で搭載されていると思います。これを用いれば通常のノートと同じように保存しておくことができますよ。

Qデータにカンマが入ったCSVデータのread方法

VBにてCSVデータを読み込むロジックを組んでいるのですが
データの中にカンマが入ったものがたまにあります。
通常通り読むとデータのカンマを区切りのカンマと間違え正しく変数に読み込まれません。
たとえばCSVデータが下記の場合
123,de-ta,12,000,jjjj
実際のデータは
123
de-ta
12,000
jjjj
ですが
12,000を2個のデータと認識して
123
de-ta
12
0000
jjjj
のようになってしまいます。
どなたか12,000をちゃんと読める方法をご存知の方お力をお貸しください。
よろしくお願い致します。

Aベストアンサー

こんにちは
そのアプリは、固定長出力はできないでしょうか。
二重引用符もだめだとすると、規則性を利用してロジックで分けるしかありません。
例えば・・
Line Input で1行ずつ取り込み。
念のためカンマの数をカウントしてみる。
カンマの位置で、データを切り出す。Instr()かVB6のSplit()で。
IsNumeric(str)を利用して、データが数値か文字列かを判断する。
例ですと、数値の後ろの項目は文字列になっているので、文字列が後ろに来たら、そこまでの数値を連結する。
てな具合です。
では!

Q手書き文字入りの画像の作り方???

今日和<(_ _*)>

手書きの文字が入った待受画像を集めている
んですが、あれって どうやって作ってるんですか??

PictBear等、画像加工ソフトを使っていて、
手書き文字のフォントならDLしてあるし、
手書き風の文字で文字入れ出来る携帯サイトの文字
とも違うんですよね。。。

マウスで頑張ってみても上手く書けなくて、
細かい文字なんてムリ… ~(-゛-;)~

PCですか?
携帯だけで出来るのでしょうか??
スキャナで読み込んでるのでしょうか??
それとも、ペンタブが無くちゃ出来ませんか??

職人さんの中には作成方法までは答えない、って
人が多くて聞けずに ずっと気になってるんですが
職人さん達は どうやって手書きしているのか
教えて下さい(>_<)
お願いします☆

Aベストアンサー

やろうと思えば携帯で出来ます。

私はDoCoMo FOMA F900iTユーザーなのですが、此れにはタッチパネル機能があって、手書きできるんです。
絶対にやりたいなら買ってもいいと思いますが、発売からもう一年経っていて、しかも未だに高い。\20000overです。

Q文字列チェック!ある文字からある文字までの値を取得するには?

"http://dailynews.yahoo.co.jp/fc/local/tokyo_metropolitan_government/"

という文字列があったとして"/"の右から3番目から4番目の間の文字列(この場合 fc)を取得するにはどうすればいいんでしょうか?教えて下さい

Aベストアンサー

Dim j, k As String
Dim a, b As Long

j = "http://dailynews.yahoo.co.jp/fc/local/tokyo_metropolitan_government/"

a = InStr(InStr(InStr(1, j, "/") + 1, j, "/") + 1, j, "/")
b = InStr(InStr(InStr(InStr(1, j, "/") + 1, j, "/") + 1, j, "/") + 1, j, "/")

k = Mid(j, a + 1, b - a - 1)

これでkに"fc"が入ります。Instrは文字列から特定の文字の位置を求める関数です。
「3番目から4番目」の3や4が変数である場合は、

k = Mid(j, x, 1)
などとして xを1から len(j)までforで回し、"/"が何字目に出てくるかを記録するといいと思います。

Q手書きの文字入力はどうするの?

ペイント文字の入力方法はわかりました。
手書きの文字を入力したい場合ははどうするんでしょ?

Aベストアンサー

> 手書きの文字を入力したい場合ははどうするんでしょ?

下記URLのページのような「手書き(風)文字」フォントを使って入力します。

「漢字も使える手書き風の日本語フォントのまとめ」
http://coliss.com/articles/freebies/freebies-handwriting-japanese-font.html

「フリーで使えるいい感じの手書き風フォント特集(日本語も)」
http://e0166.blog89.fc2.com/blog-entry-526.html

「手書き和文フリーフォント」
http://pet.24-7smile.com/font/cursive.html

Qvb.netでCSVファイルを変換して新しいCSVファイルを作りたいの

vb.netでCSVファイルを変換して新しいCSVファイルを作りたいのですが、どのようにすれば良いかヒントを教えていただけないでしょうか?

A組,10代,10
A組,20代,20
A組,30代,30
B組,10代,40
B組,20代,50
B組,30代,60
C組,10代,70
C組,30代,80

この様なCSVファイルを変換して

,A組,B組,C組
10代,10,40,70
20代,20,50,
30代,30,60,80

という表のようなCSVファイルを作りたいのです。
データベースなどに入れずに、ファイルtoファイルでの変換がしたいです。
最初のファイルの1列目と2列目の項目をそれぞれ配列に入れて重複をなくす位までは思いつくのですが、そこから先がどの様にすれば良いかよく分かりません。
ヒントだけでも良いのでよろしくお願いいたします。

Aベストアンサー

SortedDictionaryを使うのは如何でしょう?
Dim Q As New SortedDictionary(Of String, _
    SortedDictionary(Of String, Integer))
Qのキーは10代、20代、等の項目になります。
QのデータはSortedDictionaryで、キーはA組、B組等、
データは数値(3列目)です。
ランダムに書き込んでも、ソートされて記録されますので、
ファイルの入力処理後にFor Each文でデータを出力すれば
目的のように出力できます。

Dim A As New StreamReader("C:~.csv", _
    Encoding.GetEncoding("shift_jis"))
Dim B As New SortedDictionary(Of String, Integer)
Dim C As New SortedDictionary(Of String, _
    SortedDictionary(Of String, Integer))
Dim D As String
Dim E
Do Until A.EndOfStream
    D = A.ReadLine
    E = D.Split(",")
    If Not B.Keys.Contains(E(0)) Then B.Add(E(0), 0)
    Dim F As SortedDictionary(Of String, Integer)
    If C.Keys.Contains(E(1)) Then
        F = C(E(1))
        If F.Keys.Contains(E(0)) Then
            F(E(0)) = F(E(0)) + E(2)
        Else
            F.Add(E(0), E(2))
        End If
    Else
        F = New SortedDictionary(Of String, Integer)
        F.Add(E(0), E(2))
        C.Add(E(1), F)
    End If
Loop
A.Close()
Dim G = New StreamWriter("C:\~.csv", False, _
    Encoding.GetEncoding("shift_jis"))
For Each H As String In B.Keys
    G.Write("," & H)
Next
G.WriteLine("")
For Each H As String In C.Keys
    G.Write(H)
    Dim F As SortedDictionary(Of String, Integer) = C(H)
    For Each D In B.Keys
        If F.Keys.Contains(D) Then
            G.Write("," & F(D).ToString())
        Else
            G.Write(",0") '省略時はコメントアウト
        End If
    Next
    G.WriteLine("")
Next
G.Close()

SortedDictionaryを使うのは如何でしょう?
Dim Q As New SortedDictionary(Of String, _
    SortedDictionary(Of String, Integer))
Qのキーは10代、20代、等の項目になります。
QのデータはSortedDictionaryで、キーはA組、B組等、
データは数値(3列目)です。
ランダムに書き込んでも、ソートされて記録されますので、
ファイルの入力処理後にFor Each文でデータを出力すれば
目的のように出力できます。

Dim A As New StreamReader("C:~.csv", _
    Encoding.GetEncoding("shift_jis"))
Dim B As...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング