[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 03/14 21:04 / Filesize : 125 KB / Number-of Response : 432
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VB.NET質問スレ (Part20)



1 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 11:19:36 ]
前スレVB.NET質問スレ (Part19)
pc11.2ch.net/test/read.cgi/tech/1168585041/

29 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 22:51:40 ]
>>28
しかもしっかり間違いも指摘している
これは間違いなく…感じ悪い
( ゚д゚ )

30 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 22:55:06 ]
> Dim rect As Rectangle = monitor(i).WorkingArea
> Me.Bounds = rect
これでさぶスクリーンに表示できるんだ。
外野だけど勉強になったよ。

31 名前:デフォルトの名無しさん [2007/03/06(火) 22:58:10 ]
>>29
orz
ごめんよ・・・ごめんよ
>>25

でも、マジでいいアイデアだとオモタ

32 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 23:02:13 ]
>>10 がテンプレAAを乗っ取る日も近そうだ

33 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 23:03:25 ]
.Net Framework 1.1、VB2003で
VisibleがfalseのControlを画像にキャプチャする方法ってありませんか?
知ってるかたいましたらお願いします。

34 名前:25 [2007/03/06(火) 23:03:29 ]
>>27-29

> 最大の添え字のディスプレイ
というかメインディスプレイかどうかチェックかけて
メインディスプレイじゃない場合、そこに書けという処理。

というわけでモニタが二つ以上のときは
上のだと条件追加してやらいないといけない予感。


あと指摘のミス
実務のほうで・・やべ・・変な汗出てきた


35 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 23:05:05 ]
撮影直前に表示じゃダメなん?

36 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 23:11:05 ]
>>35
キャプチャするためだけに一瞬表示するのはダメっすね

37 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 23:14:49 ]
そのコントロールのコードいじれるならいくらでも
じゃなきゃVista以外はむりぽ



38 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 23:23:09 ]
>>37
コードはいじれます
.Net2.0のControl.DrawToBitmapの動きを.NET1.1でさせたいんです。

39 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 23:43:24 ]
んじゃ、
GraphicsオブジェクトつくってOnPaintに食わせれば描いてくれるよ

40 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 23:52:01 ]
>>39
マジすか、やってみます。ありがとう

41 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 10:30:49 ]
DrawToBitmapの実装を真似すればいいと思うんだが

42 名前:デフォルトの名無しさん [2007/03/07(水) 16:41:50 ]
.net2.0なんですが
Webbrowserでページを読み込んで
その中のHtmlElementをInvokeMember("Click")でクリックできることはわかったのですが
objectタグで埋め込まれているFlashをクリックできないのでしょうか?
特に複雑なことをしたいのではなくて、yahooのトップにあるようなバナーをクリックしたいだけなんですけど
objectのelementから辿ってクリックとかしたいんですけど

43 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 15:16:55 ]
すいません、質問させてください。

例えば「AAA BBB」という値が入ったテキストボックスがあるとして、
この時デフォルトではBBB付近でダブルクリックするとBBBのみが選択状態になります。

これを全選択にしたいと思い、ダブルクリックのイベントにSelectAllを書いたのですが、一度BBBが選択されたあと、全体が選択状態になる、といった動きになりました。

ダブルクリックのイベントを無効にしたのち、SelectAllすればいいのかな・・・?と思うのですが、無効の仕方がわかりません。
どなたか、方法を伝授していただけたら幸いです。
宜しくお願いします。

44 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 15:50:08 ]
ダブルクリックのイベントを無効にしたら
SelectAllすらできないんじゃ…

45 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 15:51:23 ]
時間測ってクリック2回を捕まえてみるとか

46 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 16:06:44 ]
>>44
言葉足らずでした。
例えばKeyDownなら、e.Handled = trueでイベントが処理された、とみなされますが、
そんな感じでダブルクリックの時も出来ないかな〜、というわけです。


47 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 16:37:16 ]
>>46
TextBox継承して
こんな感じじゃダメ?

Public Class hoge
  Inherits TextBox

  Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    Select Case m.Msg
      Case &H203
        Me.SelectAll()
      Case Else
        MyBase.WndProc(m)
    End Select
  End Sub

End Class



48 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 17:58:05 ]
>>47
継承というのをはじめてやったのでてこずりましたが、無事できました。
ありがとうございました。

49 名前:デフォルトの名無しさん [2007/03/08(木) 19:01:17 ]
>>47
ドトネトはフック簡単で便利だよなw

50 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 20:02:51 ]
VB.NETでフォームアプリケーション作ってて
継承が初めてってことはありえない

51 名前:デフォルトの名無しさん [2007/03/08(木) 20:05:27 ]
>>50
そりゃそうだw
既にフォームが(ry

52 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 21:55:59 ]
スポーツ少女に処女膜が無いようなもんだな

53 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 21:59:35 ]
それ違う。とても違う。

54 名前:デフォルトの名無しさん [2007/03/08(木) 23:35:50 ]
へやにいるからいおまぃらこいよwwwwww

55 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 13:35:30 ]
クラスを自分で一つも定義せずにフォームアプリケーションを作るのは
一応可能みたいだな

56 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 14:35:01 ]
ADO.NETの話です。
ExecuteNonQuery メソッドを用いてUPDATE文を実行して、その返り値が0
だった時は、それが他ユーザによる更新が原因であるのか、
ネットワークやハードウェアの障害によるエラーであるのかのチェックは
出来ない。ということなのでしょうか。
あえてチェックをする場合は、再度SELECT文を使って接続してみるしか
ないのでしょうか。

57 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 15:35:15 ]
>>56
そういう場合は0ではなくて例外が起きる。



58 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 15:45:16 ]
>>57
質問前に、msdnを読んだつもりだったのですが、例外の欄に書いてありましたね。
すみません。
InvalidOperationException(接続が存在しません。 または、接続が開いていません)

となると、以下のような解釈でいいということですよね?
例外が戻ってきた:ネットなど接続のエラー
0が戻ってきた:開いている間に他のユーザがデータを書き換えるなどしたため、
        updateで更新されなかった。

59 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 16:50:22 ]
P2Pのshareの逃げるバージョン情報のウィンドウを作りたい。
MouseEnterイベントでやるのかな?
意外と難しい。


60 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 17:27:17 ]
Point lastPos;
private void timer1_Tick(object sender, EventArgs e){
Point current = System.Windows.Forms.Cursor.Position;
if (this.Bounds.Contains(p)){
int dx = current.X - lastPos.X; int dy = current.Y - lastPos.Y;
Point loc = this.Location;
loc.Offset((int)((float)dx * 1.0f), (int)((float)dy * 1.0f));
this.Location = loc;
}
lastPos = current; this.Refresh();
}
こんな感じ?C#だけど

61 名前:60 mailto:sage [2007/03/09(金) 17:28:57 ]
ゴミが残ってた
7行目はloc.Offset(dx , dy);でいい

62 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 17:44:03 ]
>>60
ほほう。どうもありがとうございます。
参考にさせてもらいます。

63 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 19:43:07 ]
チラウラなんだが、Vistaに標準で.NET3.0&コンソールコンパイラが入っているね。
某家電屋の店頭のVistaPCでHello,Worldを実行できたよ。


64 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:51:56 ]
だんだんMSもOSを触る環境から使う環境へと意識転換してきてるんだな

65 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 23:18:25 ]
使う環境にコンパイラいらんだろ

66 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 23:25:17 ]
.NET のクラスライブラリには CodeDOM 関連のものも含まれていてだな

67 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 13:33:41 ]
実行時にソースコードをコンパイルしてスクリプトみたいに実行できたりしてだな



68 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:02:29 ]
Hello Worldとかありきたりだな
もっと個性ある今風の言葉にしようぜ。

69 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:04:02 ]
こんにちは、世界

70 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:05:52 ]
WellCome DeathMarch

71 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:51:48 ]
Goodbye World

72 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 14:54:02 ]
うわっつまんねー^^

73 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 15:58:38 ]
自演乙

74 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 16:30:02 ]
>>73
かわいそうに。

VB厨はipdわからないから、ID丸見えなのに
誰が自演かわからないんだろうねw

75 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 17:22:33 ]
>>74
しーっ

76 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:11:40 ]
すいません
文字列のピクセル長を知るためにはどうすればよいのでしょうか?

よろしくお願いします。

77 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:16:19 ]
Graphicsのメンバをよく眺めてみ



78 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 21:19:15 ]
>>76
その質問では意味がわからんが、漏れがエスパーするに、文字列を描画するのに必要な領域の幅を知りたいというんだな?
TextRenderer.MeasureText() か Graphics.MeasureString() を使え。

79 名前:76 mailto:sage [2007/03/10(土) 21:21:07 ]
>>77 >>78
ありがとうございました

80 名前:デフォルトの名無しさん [2007/03/11(日) 08:57:05 ]
Visual Studioのツールボックスみたいなコントロールは標準であるのでしょうか?
TreeViewコントロールのプロパティをいじって似たものを作ってみたのですが、
動作的にはOKでも、ノード別に見た目の文字位置とか色とかの調整ができない?ので
今ひとつでした。
よろしくお願いします。

81 名前:デフォルトの名無しさん [2007/03/11(日) 23:32:35 ]
>>80
ピンポイントでは、そのようなコントロールはないと思う
CodeProjectで>>80が求めるものを見た記憶があるなぁ・・・
日本のサイトではあの手のサンプルないんじゃないかな?

あそこで多分検索したらあると思うよ
C#かVBかは忘れちゃったけどw

82 名前:80 mailto:sage [2007/03/12(月) 08:19:57 ]
>81
標準ではないですか。。。
codeproject探してみます。
もしくはやったことないけどオーナードローを検討してみます。
ありがとうございました。


83 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:25:02 ]
DataGridでマウスでドラッグして行を選択するのだけど、mousemoveイベントの
間隔が遅すぎてまだらにしか選択されないんです(ゆっくりなら全部選択される)
この間隔ってどこかで設定とか出来る?

84 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:29:50 ]
もう一つDataGrid
そうやってドラッグして選択していった時に、ドラッグしたまま下にはみ出すと
スクロールしながら次々選択されてくってのは何イベント使えばいい?
mouseleaveだと上に抜けたか下に抜けたか分からないし…

85 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:30:58 ]
それ本当にDataGridか?

86 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:44:34 ]
どぼん参考にアクセスのlistboxみたいな動作するようにしてるけど
(rowheader無しで1行全部選択される)それ以外は普通のdatagridだけど

87 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 23:12:09 ]
小出しにされてもなあ・・なぞなぞじゃないんだし
とりあえず手元に現物が無いから、そっちで原因を洗うしかないんじゃないか?



88 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 09:05:33 ]
>>86
DataGridViewをフォームに貼り付けて
こんな感じはダメ?

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim a As New DataTable("test")
  a.Columns.Add(New DataColumn("1"))
  a.Columns.Add(New DataColumn("2"))
  a.Columns.Add(New DataColumn("3"))
  a.Columns.Add(New DataColumn("4"))
  For i As Integer = 0 To 49
    Dim r1 As DataRow = a.NewRow
    r1(0) = "a"
    r1(1) = "b"
    r1(2) = "c"
    r1(3) = "d"
    a.Rows.Add(r1)
  Next
  DataGridView1.DataSource = a
  DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
End Sub

89 名前:デフォルトの名無しさん [2007/03/13(火) 10:58:06 ]
質問があります。

ActiveXのレジストリ登録についてなのですが、
ActiveXを使うには、DLLをレジストリ登録すると思います。

そのとき、
C:\test01\hoge.dll
C:\test02\hoge.dll
とテストバージョンを2つ作ったとして、両方ともレジストリ登録したとしたら、
どちらが適用されるのでしょうか?

regsvr32 /s C:\test01\hoge.dll
regsvr32 /s C:\test02\hoge.dll
  ↓
piyo.exe

また、regeditでいちいち検索せずに、hoge.dllが今どういう登録がされているのか
を調べるとしたら、どうすれば良いのでしょうか?

90 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:09:51 ]
>>89
VB.NETで作ったCOMならregsvr32ではなく、regasmを使え。
普通のActiveXの話ならすれ違いっぽいが一応答えておこう。
基本は後勝ち。OleView.exeで調べる。

91 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:48:22 ]
>>90
「後勝ち」
確認しました。ありがとうございます。

regsvr32 /s C:\test01\hoge.dll

regsvr32 /s C:\test02\hoge.dll

とやったら、C:\test01\hoge.dll が C:\test02\hoge.dll で上書きされる
ようですね。

92 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 19:35:29 ]
確か1とか2とか憑かなかったっけ?

93 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 19:50:03 ]
COMはGUIDとか使ってそれなりに複雑な固体識別してたはずだよね。
っていうか、上書きって意味わからんw

94 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 20:43:29 ]
全く同じCLSID, ProgID持ってるんだろ

95 名前:デフォルトの名無しさん [2007/03/14(水) 11:00:29 ]
質問です!
下のようなCSVファイルがあるとします。だいたい1000行くらいのログです。

aaa,a,aaa,01,01
bbb,b,bbb,01,02
ccc,c,ccc,02,01
ccc,c,ccc,02,02
・・・・・

このCSVにおいて例えば左から4番目のカラムが04のレコードのレコード数を取得したいのです。
既存アプリが吐くログなのでカラム名もないしSQLが使えるかも不明です。
VBSかVB.net2003で上記プログラムを作成したいのですが適切なロジックが浮かびません。
Do〜Loopで一行ずつ読み込んでカンマでセパレートして配列変数に代入し、
検索条件にヒットしたらカウンタを1UPしていく方法くらいしか思い浮かばないのですが、
ほかにもっとシンプルな方法をご存知の方は教えてください。

96 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 11:03:25 ]
>>95
その方法でいいじゃん。正規表現とか覚えてる間に作れちゃうよ。

97 名前:デフォルトの名無しさん [2007/03/14(水) 12:59:59 ]
DataSetに展開してSELECTする手もあるな



98 名前:デフォルトの名無しさん [2007/03/14(水) 13:00:32 ]
連投スマン
>>97
DataTableだわw

99 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 13:08:22 ]
>>95
ADO.NETでCSV読ませれば?
そんでSQLでやるべし

100 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 13:16:17 ]
ODBC Text DriverはMDACにまだ入ってるのかな?そろそろレガシーな気もする。
ReadLineしてString.Splitで十分な気もするが、
VB.NET的にはMicrosoft.VisualBasic.FileIO.TextFieldParserを使うのが推奨だろう。

101 名前:デフォルトの名無しさん [2007/03/14(水) 14:34:24 ]
VB.NETの型付データセットでデータ取得する時にNULLを扱いたいがエラーにはしたくない
Nothing返すようにしてるけど・・・なんとなく外道なのかな?
2005ならNullable.型 で返すんだけど2003だと如何するのがオヌヌメなんだろう・・・

102 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 16:07:32 ]
1000行程度なら、オレならエクセルで読み込んで処理するが…どうしてもVBなの?

103 名前:デフォルトの名無しさん [2007/03/14(水) 16:11:53 ]
すみませんが、こちらでもよろしければ教えてください。よろしくです。

Windows.Form上で使うControlクラスを継承して新しいコントロールを作成し、
そのBaseクラスのプロパティすべてを、一回の属性設定だけでプロパティウインドウに
表示されなくすることは可能でしょうか。

目的はアプリケーションに関係のない項目はプロパティウインドウに表示させず、
関係のあるごく少わずかの項目だけを表示させたいからですが、このためには
一つ一つのプロパティを継承作成して全部そこにAttribuetes設定しないといけないでしょうか?
できれば、既存の項目は全部まとめて表示させないようにしてから、自分で追加した
プロパティだけを表示させるようにしたいのですが、こうしたことは可能でしょうか?

(本件はC#スレッドでもお聞きしていましたがお答えがほしくこちらでも質問させて
戴きました、すみませんよろしくお願いします)

104 名前:95 mailto:sage [2007/03/14(水) 16:50:45 ]
>>96-100
皆さん、様々なアドバイスありがとうございます。
皆さんのヒントを元にヘルプやwebページを漁ってみましたが、大変参考になりました。
まずは
ttp://dobon.net/vb/dotnet/file/readcsvfile.html
あたりのページを参考に、やったことのない方法でやってみようと思います。

>>102
オフィス製品を導入していないサーバーで動かすため、アプリかスクリプトを作るしかありません。
バッチファイルかなにかで済ませられればそれに越したことはないのですが・・・

105 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 18:00:33 ]
VB.NETをまだ勉強していないのですが、よろしければ質問させてください

現在C、C++、WIN32APIを用いてウィンドウアプリを作成しているのですが
VB.NETでUIを作成し、Cでイベントハンドラのソースを書くことは可能なのでしょうか?
また、その場合CとWIN32のみで作成した場合と処理速度に差がでるのでしょうか?
(現在作っているプログラムはリアルタイム処理なため、処理速度が重要)

理由はデータベース関連の書籍やサイトがほとんどVB、C#、perl、JAVAなどのため
MFCでUIとデータベースを実装するよりも、VB.NETに移行した方がいいのかと思ったからです
C++/CLIなるものがあるようなのですが、何分C以外の言語はほとんど無知なため
よろしければご教授願います

106 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 18:07:23 ]
>>95
set n=0
for /f "delims=, tokens=4" %%0 in (hoge.csv) do if %%0=04 set /a n+=1
echo %n%


107 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 18:33:18 ]
>>105
結局ナニが知りたいのかよく読み取れないが、
とりあえずPInvokeでググってみたらどうかな

cで作ったdll内の関数を呼び出せるか、という意味ならそれは可能。



108 名前:105 mailto:sage [2007/03/14(水) 19:31:17 ]
>>107
わかりにくい文章ですいません
VBを使ってウィンドウを作成し、自分でCで作った関数を呼び出して使えるのか
ということが知りたかったんです
どうやら可能なようですね
PInvokeもかなり参考になりました
ありがとうございました

よろしければ、VBでCを呼び出した場合と、WIN32+Cの場合で処理速度に
差がでるか教えていただければ幸いです
wikipediaのVBの概要に
「ただし、実行速度はC/C++で記述したネイティブプログラムに比べ
10倍から20倍遅いと言われている。」
と書いてあったもので、あまりにも処理速度に差がでるならば使えないので・・・
これはCで書いた関数をVBで書き直した場合、これほどの差がでるということなのでしょうか?


109 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 19:55:57 ]
>>106
if %%0=04

if %%0==04



110 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 20:31:54 ]
>>108
日本のwikipediaなんか話半分に聞いとかなきゃダメでしょw

それたぶんVB6以前の話だと思うし。
VB6だってメモリを直接操作できないことによるオーバーラップがネックになるような
ごく一部の処理(特定の文字列操作)以外はそんな遅くなる理由がないし。

っていうか、あんたの用途に適合的かどうかはあんた自身で試すしかないでしょ。

111 名前:105 mailto:sage [2007/03/14(水) 20:39:37 ]
>>108
wikipediaを信頼しすぎたようですね
大丈夫なようで安心しました
時間はかかると思いますが、自分で試して頑張ってみることにします

ありがとうございました

112 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 20:41:20 ]
アンカーミス・・・>>110でした
スレ汚し失礼

113 名前:デフォルトの名無しさん [2007/03/14(水) 21:47:44 ]
10万行くらいあるテキストファイル(1行100文字前後)の最後の100行を
読みたいのだけれどもっとも高速な方法を教えてくれ。


114 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:01:17 ]
頭から読むしかない。

文字列配列を要素100個分用意して放り込んでいき、
最後まで埋まったら頭から上書きしていく。

115 名前:デフォルトの名無しさん [2007/03/14(水) 22:07:49 ]
>114
>頭から読むしかない。
げげ、ほんまかいな。困った。
じゃあ、逆にファイルを書き出すときに末尾に追加するのではなくて、
先頭に行を追加することはできるかい?それが出来れば
読むときは頭から100行読めばいいので。どう?

116 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:12:02 ]
そんな馬鹿なw
天然無脳(つまり114のことだが)だって1万ページある本の最後の1000行を
書き出すのに巻頭から全部目を通さないだろう

117 名前:デフォルトの名無しさん [2007/03/14(水) 22:21:19 ]
>116
その方法を教えてくれ。たのむ。



118 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:25:14 ]
ケツからファイルポインタをデクリメントしていって1000個目の改行コード探すだけじゃん。
そこから先は普通にテキストとして読めばいい。

119 名前:デフォルトの名無しさん [2007/03/14(水) 22:32:41 ]
>118
サンプルコードを教えてくれ。たのむ。俺は、ファイルポインタなんて
使った経験がない。
StreamReaderでファイルを開いてReadLine() で一行ずつなら読める。

120 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:35:27 ]
氏ねよ

121 名前:デフォルトの名無しさん [2007/03/14(水) 22:39:37 ]
>>119
FileStreamクラスを使うんじゃよ

122 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:43:56 ]
>>113
>>119ってもしかしてテキストファイルなら、TextBox系でLoadFileしておいてTextを
String変数に代入してLength目から逆追いするってのと同じじゃないだろうか。
それなら直ぐ書けるのじゃないだろうか。
って俺はとてもヒマないからやってはあげはしないがw

123 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:45:37 ]
あ、ただTextBoxBaseは最大文字数に制限あったっけ??

124 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:49:38 ]
>>122,123は論外

125 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 23:18:39 ]
プログラム始めてから数ヶ月の俺にも出来たぜw

126 名前:デフォルトの名無しさん [2007/03/14(水) 23:24:16 ]
>125
それを俺に教えてくれ。たのむ。

127 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 23:36:37 ]
>>126
Dim a As New IO.FileStream("C:\a.txt", IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None)
Dim count As Integer
Dim Bytes(a.Length - 1) As Byte
For I As Integer = a.Length - 2 To 0 Step -1
 a.Position = I
 If a.ReadByte() = 13 And a.ReadByte() = 10 Then
  count += 1
  If count = 1000 Then
   a.Read(Bytes, 0, a.Length - I)
   TextBox1.Text = System.Text.Encoding.GetEncoding("Shift-jis").GetString(Bytes)
   Exit For
  End If
 End If
Next
a.Close()

エンコードはシフトJIS
勘で作ったから保障はしないよ



128 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 23:44:13 ]
色んな物がメチャクチャだなぁ

129 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 23:50:53 ]
>Dim Bytes(a.Length - 1) As Byte
これで台無しだな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<125KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef