[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/09/21(Thu) 22:58
投稿者名:たか
Eメール:
URL :
タイトル:
固定長のテキストファイルをバイト毎に読込む

固定長のテキストファイル(改行なし・半角全角混在)を
20バイト毎に読み込みたいのですが、どのようにしたら
できますでしょうか?ご教授お願い致します。

投稿時間:2006/09/21(Thu) 23:13
投稿者名:Blue
Eメール:
URL :
タイトル:
Re: 固定長のテキストファイルをバイト毎に読込む
テキストファイルの文字コードがShift_JIS(コードページ932)であれば
バイナリ形式で開いて、Byte型配列に読み込ませて、StrConv関数を使って変換する。
(2バイト文字の泣き別れはなにも書かれていないのでなんともいえない)


それ以外のコードである場合、何を持って20バイトとするかを既定してもらわないと解答できない。

投稿時間:2006/09/21(Thu) 23:26
投稿者名:たか
Eメール:
URL :
タイトル:
Re^2: 固定長のテキストファイルをバイト毎に読込む
> テキストファイルの文字コードがShift_JIS(コードページ932)であれば
> バイナリ形式で開いて、Byte型配列に読み込ませて、StrConv関数を使って変換する。
> (2バイト文字の泣き別れはなにも書かれていないのでなんともいえない)
>
>
> それ以外のコードである場合、何を持って20バイトとするかを既定してもらわないと解答できない。

早速のご教授ありがとうございます。

テキストファイルの文字コードはShift_JISです。
2バイト文字の泣き別れとは何でしょうか?すみません。

できましたら、コードサンプルのあるページなどをご紹介していただけると
ありがたいです。

よろしくお願い致します。

★ VB.NETの質問をこちらに入れてしましました。
   VB.NETに質問を移動させていただきますので、お願い致します。

投稿時間:2006/09/21(Thu) 23:35
投稿者名:Blue
Eメール:
URL :
タイトル:
Re^3: 固定長のテキストファイルをバイト毎に読込む
> 2バイト文字の泣き別れとは何でしょうか?すみません。

こんなやつ。

例:5バイトで切り出す場合

あいうえお

の場合全角文字の「う」で分割しないといけない状態になる。

というか「泣き別れ」でWeb検索したほうが100倍理解できると思うけど。


それと、VB6を前提に解答しています。
VB.NET(VB2005はVB.NETとは呼ばないですが)では、やはりBinaryReaderクラスあたりを使って、
Encodeクラス(であってたかな)で変換していけばいいです。(StrConvも使えるけど)
ただし、前述のとおり「泣き別れ」がある場合、ファイルを全て読み込んだほうが簡単だとおもいます。


>   VB.NETに質問を移動させていただきますので、お願い致します。
一応どちらのスレにもリンクをはっておいてください。

投稿時間:2006/09/22(Fri) 00:08
投稿者名:たか
Eメール:
URL :
タイトル:
Re^4: 固定長のテキストファイルをバイト毎に読込む
> >   VB.NETに質問を移動させていただきますので、お願い致します。
> 一応どちらのスレにもリンクをはっておいてください。

Blue さんへ

親切なご教授ありがとうございます。

「泣き別れ」のご説明ありがとうございます。
テキストファイルには、泣き別れになるようなデータ
はなかったと思いました。

ちなみに、開発言語は、.NET 2003 なのですが、
さっきまで、VB2005 も .NET だと思っていました・・・。

移動先 VB.NET 掲示板です。
http://hanatyan.sakura.ne.jp/dotnet/index.html

投稿時間:2006/09/22(Fri) 00:19
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: 固定長のテキストファイルをバイト毎に読込む

> 移動先 VB.NET 掲示板です。
> http://hanatyan.sakura.ne.jp/dotnet/index.html

ではありません。  VB.NET 用掲示板 は下記です。

 http://hanatyan.sakura.ne.jp/bbs/wforum.cgi

投稿時間:2006/09/22(Fri) 09:28
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^5: 固定長のテキストファイルをバイト毎に読込む
> > VB.NET(VB2005はVB.NETとは呼ばないですが)では、
> ちなみに、開発言語は、.NET 2003 なのですが、
> さっきまで、VB2005 も .NET だと思っていました・・・。

.NET 用開発言語ですよ。VB2005も。>たかさん

単に製品名が、VB.NET2005 ではなく VB2005 である…という事ですよね。>Blueさん

投稿時間:2006/09/22(Fri) 09:38
投稿者名:Blue
Eメール:
URL :
タイトル:
Re^6: 固定長のテキストファイルをバイト毎に読込む
> 単に製品名が、VB.NET2005 ではなく VB2005 である…という事ですよね。>Blueさん
ってことは、勘違いしてたっぽいです。

ちょっと整理します。

VB.NET 2002 ---> VB7.0 .NET Framework 1.0
VB.NET 2003 ---> VB7.1 .NET Framework 1.1
VB 2005     ---> VB8.0 .NET Framework 2.0

で、言語名はどれも VB.NET っていいのですね。
でも、

「VBのバージョンは VB.NET です。」

って言われた場合は2005は含まれないような気もするけどどうなんでしょうか?

投稿時間:2006/09/22(Fri) 19:23
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^7: 固定長のテキストファイルをバイト毎に読込む
# .NET 系の話題なので、こっちの掲示板で続けてよい話なのか、
# 微妙ではありますが…。


> で、言語名はどれも VB.NET っていいのですね。

基本的には、それで良いとは思います。ただしそれらは、テクノロジや言語仕様という分類に
おいての通称に過ぎません。言語と開発環境は密接に関連付いていますが、別のものです。

ややこしいことに、VB1 も VB6 も VB.NET 2003 も VB2005 も、単純に“言語名”という点のみでいえば、
いずれも「Visual Basic」と呼ばれる存在となります。(ちなみに C#.NET にしても、言語名は「C#」です)
また、Visual Basic for Applications、いわゆる「VBA」と呼ばれているものにしても、
“言語名”としては単に「Visual Basic」だったりします。

ただし、これらを区別しなければならない場合は、それらを "VB6以下"、"VB.NET"、"VBA" などと
呼びわける事が多いようです。(ここの掲示板も、VB2〜VB6 と VB.NET 系とに分類されていますね)


> VB.NET 2002 ---> VB7.0 .NET Framework 1.0

一方、“製品名”という点からみた場合、“VB.NET 2002”という名前の物は、厳密には存在しません。
実際、歴代バージョンの製品名を比較してみると、2002 という名前が付いていない事がわかります。(※1)

ですが、製品パッケージ名に 2002 とは記載されていずとも、2003 の登場後は、それぞれを区別するために
2002 という名称で呼ばれることが非常に多くなっています。なので、VB.NET 2002 という表記も、
特に間違いというわけではありません。



> 「VBのバージョンは VB.NET です。」
> って言われた場合は2005は含まれないような気もするけどどうなんでしょうか?

私見ですが、含まれる場合と、含まれない場合とがあると思います。

もしそれが「製品名」の意味だとすれば、数値が書かれていないので、2002 のことを指すかと思います。
ですが多くの場合、それは「VB6 ではなく、それ以降のバージョン」という意味でしかない事も多く、
すなわち、2002, 2003, 2005, そしてときには VB9 をも指す言葉になると、私は思っています。



注意すべきは、VB.NET での開発に最低限必要なのは、.NET Framework の環境だけであるという点でしょう。(※2)

Visual Studio.NET 2003 や Visual Basic.NET 2003 などの有償製品、あるいはフリーの開発環境製品など(※3)は、
その開発を手助けするためのツール(統合開発環境)に過ぎません。開発に必須というわけではないからです。
(極端な話、メモ帳と.NET Framework SDK 1.1 を使っても、VB7.1 のアプリは作れるわけですから)

たとえば、使用している製品が VB2005 だという事が分かれば、その言語バージョンが VB8 であるという事も
確定します。ですが逆に、バージョンが VB8 だからといって、VB2005 という製品を使っているとは
限りません。ですから、このような掲示板でにおいては言語バージョンよりも、使用している
環境(開発言語製品名)を伝えてもらった方が、話がしやすかったりします。



=============================================================
(※1) 下位エディションの製品名比較
-------------------------------------------------------------
    ≪.NET Frameworkバージョン≫, {言語バージョン},「製品名」
 (1)≪1.0≫, {7.0},「Microsoft Visual Basic .NET Standard」
 (2)≪1.1≫, {7.1},「Microsoft Visual Basic .NET Standard 2003」
 (3)≪2.0≫, {8.0},「Microsoft Visual Basic 2005 Express Edition」
 (4)≪3.0≫, {9.0},「(開発中:コードネームOrcas)」
=============================================================
(※2) VB.NET と .NET Framework
-------------------------------------------------------------
より正確にいえば、VB.NET をサポートしているのは、.NET Framework だけでは
ありません。Mono Project という存在があるからです。
http://smdn.invisiblefulmoon.net/index.php?cmd=read&page=Linux%2FFedora%20Core%2FMono
http://www.itmedia.co.jp/enterprise/articles/0406/24/news087.html
=============================================================
(※3) フリーの開発環境製品
-------------------------------------------------------------
無料の.NET対応開発言語製品としては、下記のような物があります。
[SharpDevelop]
http://sharpdevelop-jp.sourceforge.jp/
[Web Matrix]
http://www.microsoft.com/japan/msdn/asp.net/webmatrix/
[Express Edition シリーズ]
http://www.microsoft.com/japan/msdn/vstudio/express/

投稿時間:2006/09/22(Fri) 21:48
投稿者名:Blue
Eメール:
URL :
タイトル:
Re^8: 固定長のテキストファイルをバイト毎に読込む
返信ありがとうございます。

>VB.NET での開発に最低限必要なのは、.NET Framework の環境だけであるという点でしょう。
ですね。
VBやC#ならば、これだけで大体わかりますね。

# VC++はC++/CLI(MC++),MFC,それ以外があるので、更にプロジェクトの種類までわからないといけないですが。