DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Nomalフォントに登録されていない文字の検出(1) | Nomaloledbでdatatableを取得するときにエラーになる(1) | Nomal作成した白黒画像をWordに貼り付けてから「図として保存」(8) | NomalVB.NetでVB6.0と同じFontを指定しても同様に印刷されない(9) | NomalDataGridViewの複数行選択で歯抜け選択を無効にしたい(2) | Nomal証券会社へのログイン(1) | Nomalユーザーフォームに埋め込んだAutoCADの変化を捉える(0) | Nomalシステムドライブ以外へのページング設定が反映されない(5) | Nomalブラウザでコピーした透過PNGを貼り付けたい(4) | Nomalforeachでループ回数を取得(2) | Nomalbitmapが保存できない(2) | Nomal特定ピクセルで画像を読み込みたい(2) | NomalDataGridViewでAlt+Enterで改行したい(2) | Nomal全角シフト中にアクセスキーが効かない(5) | NomalDataAdapter.Updateで構文エラー(6) | Nomal抽象クラスで実装したクラスの情報を知る(3) | Nomal画面遷移(モーダルとモードレス)(2) | NomalProcessクラスからbatファイル実行後、KILLできない(2) | NomalGetDirectoriesでルートを指定するとエラーになる(3) | Nomal兆億万表記の文字列を数値に変換できる?(3) | NomalLinqにおける明示的型指定の方法(3) | Nomal2つのradの数値から1つの角度を求めるコードを改善できますか?(C++)(2) | Nomalコンソールアプリで、WebView2の利用(2) | NomalEntity Frameworkは、使えるか?(2) | Nomalデータベースからのテーブル名一覧の効率的な取得方法(3) | NomalC#のlong型でオーバーフローになる(2) | Nomal正規表現のパターン表記方法(2) | NomalWebView2によるスクレ―ピング(4) | Nomalこういた物を作れますか?(2) | Nomalツールボックスにtableadapterが表示されない(1) | NomalC# Chart X軸上のグラフ表示(3) | NomalVB.NETでBluetoothデバイスの電池残量を取得する方法(3) | Nomalクリスタルレポート 明細部のサブレポート(0) | Nomal重なったPictureBox同士を透過する方法(7) | NomalWindowsフォームデザイナについて(3) | Nomalvb.netでExcelファイル操作(7) | NomalVB.NETからcmdでpingを実行した時の結果(5) | Nomalvb.netでのExcelファイルそうさ(2) | Nomalキーボード+バーコードでキーボード入力を無効にしたい(6) | NomalVB2022でクリスタルレポートが開けない(2) | Nomalファイルとして配置したマニフェストを優先したい(2) | NomalTabPageの背景色(5) | NomalC#でJpeg圧縮のTiffファイルを作成したい(4) | Nomalエクセルのみ監視ができない(2) | NomalDataGridViewのVirtualModeを有効した場合の実装方法(4) | NomalExcelの数値 -> 日付みたいな関数?(2) | Nomaljumbo icon(256x256)が存在するか知る方法(6) | NomalDrawstringでの透過文字作成(3) | NomalSpinWait()を使う理由(2) | Nomalantecedentってなんですか?(2) | Nomalワンタイムパスワードのサイトに自動ログインしてアクセストークンを得る(3) | Nomalstyle.displayだと効率悪いから違うやり方をしたいです。(5) | Nomalテーブルを順番通りに直すプログラムを外部で読み込めるようにしたいです。(4) | NomalJSONの複雑な入れ子内部の値を取りたい。(3) | Nomalグリッド表示レコードをJSONに変換(5) | Nomalシステム時計の設定(3) | NomalSeleniumで開いているページのTableを編集したい(5) | Nomalソケット通信入門 ひらがな(4) | NomalVisual Basicでエラーが出る(3) | Nomalインストーラにて、ローミングフォルダにファイルを配置したい(0) | NomalRGB値の所得(2) | Nomal時間変数(文字列)の扱い(4) | NomalVB.net からAccessDBへの接続(2) | Nomal画像のスクロール(6) | Nomalタイマーの一括処理(6) | NomalTreeViewとDataGridViewのスクロールを同期(シンクロ)させたい(4) | NomalTreeViewの現在位置とDataGridViewの現在位置を合わせたい(7) | NomalPictureBoxの画像を連続保存(11) | NomalDataGridViewの特定セルにボタンを配置する方法(5) | Nomalフォームのリサイズ時にDataGridViewが再描画されない(4) | NomalテキストボックスのValidatingイベントよりも先に発生するボタン発生イベントは何でしょう?(2) | NomalPDFをフォーム上で表示させる方法につきまして(4) | NomalDataGridViewの行ヘッダーに行番号を表示した時のエラー(4) | Nomal継承元フォームで各フォームのボタン動作を検知したい(3) | Nomalラジオボタンの一括設定(7) | NomalWindowsエクスプローラからのドラッグ&ドロップ(2) | NomalRichTextBoxのテキストをpictureBOXへ(12) | Nomalクリックイベントでexeを作成できるか(2) | Nomalアセンブリ情報が載らない(1) | Nomal先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える(6) | Nomalc#で日付型の定義の仕方で質問があります。(2) | NomalExcel Com オブジェクトの増殖(13) | Nomal二次元マップから値の取得(1) | NomalアプリでHDMIへ出す解像度を変えたい(4) | Nomal列車の時間ごとの位置情報を表示したいです。(2) | Nomal画像の中心を基点に回転(4) | NomalDataGridViewのドロップダウンリストの表示と選択後の値を分けたい(1) | NomalタッチキーボードでIMEを自動で切替えたい(6) | NomalVSTOによるエクセルアドインのインストーラーでのアップデート(1) | NomalMP4動画を再生する方法について(5) | NomalUrlにアクセスするとダウンロードされるファイルを捕まえる(2) | NomalLableのカラー色を文字変数から変更したい(5) | NomalLabelで文字単位の背景色(7) | NomalTEXTBOXのプロパティを文字列に(7) | Nomalタブレット等でスワイプによるスクロールを実装(2) | NomalPDFをフォーム上で表示させる方法につきまして(6) | NomalChart X軸上の描画を切り替えたい(0) | NomalRichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い(3) | Nomal特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因(6) | NomalASP.NET WebApi内でXmlReader.Create(url)がタイムアウトする(4) |



■記事リスト / ▼下のスレッド
■35301 / 親記事)  Windowsエクスプローラからのドラッグ&ドロップ
□投稿者/ よっし〜 一般人(15回)-(2022/12/24(Sat) 08:53:12)
  • アイコン環境/言語:[VB.NET] 
    分類:[.NET] 

    現在Windowsエクスプローラからファイルをドラッグ&ドロップして、ドロップされたファイルを処理するプログラムを作成しております。

    http://dobon.net/vb/dotnet/control/droppedfile.htmlを参考にさせて頂き、あくまでも例ですが

    Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop
    Dim fileName As String() = CType(e.Data.GetData(DataFormats.FileDrop, False), String())
    For Each FL As String In fileName
    <FLファイルに対しての重い処理>
    Next
    End Sub
    としております。
    もちろん作成しているアプリは重い処理なので、応答無し的な状態にはなりますが、Windowsエクスプローラの方もドラッグ中(カーソルに+が付いた)のままとなってしまい、操作できません。
    アプリはともかく、Windowsエクスプローラを処理から開放する方法はありますでしょうか??

    以上、宜しくお教えくださいませ。

違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35302 / ResNo.1)  Re[1]: Windowsエクスプローラからのドラッグ&ドロップ
□投稿者/ 魔界の仮面弁士 大御所(1507回)-(2022/12/24(Sat) 11:05:56)
  • アイコンNo35301に返信(よっし〜さんの記事)
    > アプリはともかく、Windowsエクスプローラを処理から開放する方法はありますでしょうか??

    Dim fileName As String() に受け取るだけならば、
    そんなに時間はかからないですよね?

    であれば、UI スレッドはファイルの一覧を受け取るだけにして、
    その後の処理はワーカースレッドに任せてしまえば良さそうです。
    .NET バージョンによって選択肢が変わってきますが、
    たとえば Task とか BackgroundWorker とか Thread とか…。

    ただしその場合、別スレッド操作になるので
    > <FLファイルに対しての重い処理>
    の部分では、UI 部品(TextBox とか ListBox とか Label とか)の
    読み書きは行えなくなります。
違反を報告
引用返信
■35304 / ResNo.2)  Re[2]: Windowsエクスプローラからのドラッグ&ドロップ
□投稿者/ よっし〜 一般人(16回)-(2022/12/26(Mon) 08:58:55)
  • アイコン魔界の仮面弁士さん、早速のご教示、有り難うございます。

    > であれば、UI スレッドはファイルの一覧を受け取るだけにして、
    > その後の処理はワーカースレッドに任せてしまえば良さそうです。
    > .NET バージョンによって選択肢が変わってきますが、
    > たとえば Task とか BackgroundWorker とか Thread とか…。

    BackgroundWorker使用し、フォーム等を処理から開放するのは知っておりましたが、
    Windows別アプリ(別スレッド)も開放出来るのですね。
    一度重い処理部分をBackgroundWorkerで処理する様に改造してみます。

    どうも、有り難うございました。


解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35270 / 親記事)  RichTextBoxのテキストをpictureBOXへ
□投稿者/ ま〜 一般人(28回)-(2022/12/05(Mon) 15:45:30)
  • アイコン環境/言語:[Windows10 VS2022 Basic] 
    分類:[.NET] 

    こんにちは
    以前、
    https://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=35233&rev=&no=0
    でLEDモニタの件で画像にすればと提案頂いて格闘していましたが玉砕気味です。
    現状は
    Dim img As Bitmap
    img = New Bitmap(Me.RichTextBox1.Width, Me.RichTextBox1.Height)
    Using g As Graphics = Graphics.FromImage(img)
    g.CopyFromScreen(Me.PointToScreen(Me.RichTextBox1.Location), New Point(0, 0), Me.RichTextBox1.Size)
    End Using
    Me.PictureBox1.Image = img

    です。転送はて来たのですがRichTextBoxの位置情報が上手く取れずに少しずれてしまいます。
    Me.RichTextBox1.Locationの値が連想出来ない数値になってます。
    色々やってみましたが私のコピペ専門の理解度では難しく教えて下さい
    初歩的な質問で申し訳ないですが宜しくお願いします






違反を報告
引用返信

▽[全レス12件(ResNo.8-12 表示)]
■35279 / ResNo.8)  Re[6]: RichTextBoxのテキストをpictureBOXへ
□投稿者/ KOZ 一般人(11回)-(2022/12/08(Thu) 18:38:13)
  • アイコン
    2022/12/09(Fri) 04:27:45 編集(投稿者)
    
    ■No35275に返信(ま〜さんの記事)
    >>高 DPI 環境で実行している場合は、ズレる可能性がありますね。
    > まさにこれが原因でした。凄いです感激です。
    
    これ動きますか?
    ちょっと問題があって、画像を縮小するせいか、少しぼやけた感じになります。
    ,NET Framework 4.7 以上なら RichTextBox の DrawToBitmap を使ったほうがいいかもしれません。
    
    Imports System.Runtime.InteropServices
    
    Public Class Form1
    
        <DllImport("User32.dll")>
        Public Shared Function LogicalToPhysicalPointForPerMonitorDPI(ByVal hwnd As IntPtr, ByRef point As Point) As Boolean
        End Function
    
        Private Shared Function LogicalToPhysicalRectangleForPerMonitorDPI(ByVal hwnd As IntPtr, ByVal r As Rectangle) As Rectangle
            Dim p1 As Point = r.Location
            Dim p2 As Point = New Point(r.Right, r.Bottom)
            LogicalToPhysicalPointForPerMonitorDPI(hwnd, p1)
            LogicalToPhysicalPointForPerMonitorDPI(hwnd, p2)
            Return Rectangle.FromLTRB(p1.X, p1.Y, p2.X, p2.Y)
        End Function
    
        Private Function LogicalToPhysicalRectangleForPerMonitorDPI(ByVal r As Rectangle) As Rectangle
            Return LogicalToPhysicalRectangleForPerMonitorDPI(Handle, r)
        End Function
    
        Public Sub New()
            InitializeComponent()
            PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
            PictureBox1.Size = RichTextBox1.Size
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim rectangle1 = RectangleToScreen(RichTextBox1.Bounds)
            Dim rectangle2 = LogicalToPhysicalRectangleForPerMonitorDPI(rectangle1)
            Dim bmp = New Bitmap(rectangle2.Width, rectangle2.Height)
            Using g = Graphics.FromImage(bmp)
                g.CopyFromScreen(rectangle2.Location, Point.Empty, rectangle2.Size)
            End Using
            If PictureBox1.Image IsNot Nothing Then
                PictureBox1.Image.Dispose()
            End If
            PictureBox1.Image = bmp
        End Sub
    
    End Class
    

違反を報告
引用返信
■35280 / ResNo.9)  Re[7]: RichTextBoxのテキストをpictureBOXへ
□投稿者/ ま〜 一般人(31回)-(2022/12/15(Thu) 13:11:41)
  • アイコンこんにちは、体調を崩して回答が遅れました。すみません。
    ご指導の様にやってみました。DPI環境でもバッチリでした。
    ありがとうございます

    ですがTabPage環境化ではズレました。
    Parentをと思って色々やってみましたが中々上手くいかずTabPage下の座標知る方法はないのでしょうか?
    以上、宜しくお願いします

違反を報告
引用返信
■35282 / ResNo.10)  Re[8]: RichTextBoxのテキストをpictureBOXへ
□投稿者/ KOZ 一般人(12回)-(2022/12/15(Thu) 18:00:28)
  • アイコン
    No35280に返信(ま〜さんの記事)
    > こんにちは、体調を崩して回答が遅れました。すみません。
    
    お大事に。
    
    > ですがTabPage環境化ではズレました。
    > Parentをと思って色々やってみましたが中々上手くいかずTabPage下の座標知る方法はないのでしょうか?
    
    むむむ、やっかいですね高DPI。
    スクリーン座標を取るのが目的でないなら、以下のコードでキャプチャはできると思います。
    
    Imports System.Runtime.InteropServices
    
    Public Class Form1
    
        Public Sub New()
            InitializeComponent()
            PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
            PictureBox1.Size = RichTextBox1.Size
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim bmp = CreateBitmapFromControl(RichTextBox1)
            If PictureBox1.Image IsNot Nothing Then
                PictureBox1.Image.Dispose()
            End If
            PictureBox1.Image = bmp
        End Sub
    
        Private Const SRCCOPY As Integer = &HCC0020
    
        <DllImport("User32.dll")>
        Private Shared Function GetWindowDC(hWnd As IntPtr) As IntPtr
        End Function
    
        <DllImport("user32.dll")>
        Private Shared Function ReleaseDC(hWnd As IntPtr, hDC As IntPtr) As Boolean
        End Function
    
        <DllImport("gdi32.dll")>
        Private Shared Function BitBlt(hdcDest As IntPtr,
                                       nXDest As Integer, nYDest As Integer,
                                       nWidth As Integer, nHeight As Integer,
                                       hdcSrc As IntPtr,
                                       nXSrc As Integer, nYSrc As Integer,
                                       dwRop As Integer) As Boolean
        End Function
    
        Private Shared Function CreateBitmapFromControl(con As Control) As Bitmap
            Dim cs = con.Size
            Dim bmp As New Bitmap(cs.Width, cs.Height)
            Using g = Graphics.FromImage(bmp)
                Dim hdcDest = g.GetHdc()
                Dim hdcSrc = GetWindowDC(con.Handle)
                BitBlt(hdcDest, 0, 0, cs.Width, cs.Height, hdcSrc, 0, 0, SRCCOPY)
                ReleaseDC(con.Handle, hdcSrc)
                g.ReleaseHdc()
            End Using
            Return bmp
        End Function
    
    End Class
    

違反を報告
引用返信
■35295 / ResNo.11)  Re[9]: RichTextBoxのテキストをpictureBOXへ
□投稿者/ ま〜 一般人(32回)-(2022/12/19(Mon) 13:37:36)
  • アイコンPCを変えたりし確認しました。
    バッチリです。
    沢山勉強になりました。
    ありがとうございます。
違反を報告
引用返信
■35296 / ResNo.12)  Re[10]: RichTextBoxのテキストをpictureBOXへ
□投稿者/ ま〜 一般人(33回)-(2022/12/19(Mon) 13:45:34)
  • アイコンクローズ忘れてました。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-9] [10-12]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35292 / 親記事)  クリックイベントでexeを作成できるか
□投稿者/ TMK 一般人(1回)-(2022/12/17(Sat) 12:07:39)
  • アイコン環境/言語:[C# (VS2008)] 
    分類:[.NET] 

    皆さま こんにちは

    ユーザーフォームのクリックイベントでexeの作成は可能なのでしょうか

    配布用exeを作ろうと思っています。
    exeの目的は、共通のファイル等の操作でヒューマンエラーが起こらないよう、
    ワンクリックで自動的に処理したいのです。

    ただ、動作させる環境を限定させたいので、多少のパラメータをexeに渡す必要があります。
    ユーザーフォームでパラメータを選択し、クリックイベントでパラメータを含んだexeを作成する(exeで参照)、
    そんな感じのプロジェクトを作成したいと思っています。
    パラメータの条件を満たさない環境では何もせずにreturnさせたいのです。

    batファイルでexeを作るようにした方が良いのかなとも思うのですが、
    使用者のことを考えるとユーザーフォームでボタンクリックの方が親切かなと思っています。

    しかし、C#では無理があることなのか私の検索方法が悪いのか、
    あまりヒントとなるネタを見つけることができません。

    ということで、最初に戻るのですが、ユーザーフォームのクリックイベントでexeを作成することは可能なのでしょうか。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35293 / ResNo.1)  Re[1]: クリックイベントでexeを作成できるか
□投稿者/ KOZ 一般人(15回)-(2022/12/17(Sat) 12:55:31)
  • アイコンNo35292に返信(TMKさんの記事)
    > ユーザーフォームのクリックイベントでexeの作成は可能なのでしょうか

    ソースを出力してコンパイルすればいいのでは。
    「OSに標準付属のC#/VBコンパイラーでソースコードをコンパイルするには?」
    https://atmarkit.itmedia.co.jp/ait/articles/1504/15/news019.html

    パラメタを外部ファイルから読み込むようにした exe ファイルを配布し、
    外部ファイルを編集するのが一般的かなと思います。
違反を報告
引用返信
■35294 / ResNo.2)  Re[1]: クリックイベントでexeを作成できるか
□投稿者/ Hongliang 大御所(636回)-(2022/12/18(Sun) 19:42:04)
  • アイコン「exeを作成する」というとソースコードをコンパイルして実行ファイルを作成することを想像するのですが、
    ひょっとしてなさりたいことは「引数を付けて.exeを起動したい」でしょうか。
    それならば以下のページなどがありますが。
    https://dobon.net/vb/dotnet/process/shell.html
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35278 / 親記事)  アセンブリ情報が載らない
□投稿者/ Rolulu 一般人(1回)-(2022/12/08(Thu) 18:16:40)
  • アイコン環境/言語:[VB.NET] 
    分類:[.NET] 

    はじめまして。
    VS2019でVBアプリを作っています。

    その中でMyProjectのアプリケーションにあるアセンブリ情報を入力したのですが、ビルドやデバックした実行ファイルには反映されていませんでした。
    実行ファイルのプロパティの詳細に載っているのは、種類がアプリケーションとサイズと更新日だけでした。

    アセンブリ情報がなぜ反映されないのかわからず質問させていただきました。
違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■35289 / ResNo.1)  Re[1]: アセンブリ情報が載らない
□投稿者/ shu 大御所(500回)-(2022/12/16(Fri) 16:36:34)
  • アイコンNo35278に返信(Roluluさんの記事)

    正しいと思われる操作だけでなく
    行われた操作をプロジェクト作成から
    その状態を確認するまでどのように行ったのかを
    記載された方がよいと思います。
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-1]



■記事リスト / ▲上のスレッド
■35259 / 親記事)  先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える
□投稿者/ ま〜 一般人(23回)-(2022/12/01(Thu) 13:34:12)
  • アイコン環境/言語:[Windows10 VS20222] 
    分類:[.NET] 

    いつもありがとうございます。またハマってます。

    例)" 1 2345"の文字列
       ↑スペース
      
    テキストファイルの内容に先頭にスペースがあるファイルを読み込んでRichTextBoxへ書き出すと先頭のスペース全部が削除されます
    "1 2345こんな感じになります。"
    間にある(1と2間)スースは消えません。
    何がダメなのか分からない状況です。

    Dim sr As Microsoft.VisualBasic.FileIO.TextFieldParser = New Microsoft.VisualBasic.FileIO.TextFieldParser (DataPath & "文字.TXT", System.Text.Encoding.GetEncoding("shift_jis"))

    '内容は区切り文字形式
    sr.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited

    'デリミタはカンマ
    sr.SetDelimiters(",")

    Dim Row As String() '= sr.ReadFields
    '一行目を読み込
    Row = sr.ReadFields()
    RichTextBox1.Text = Row(0)
    Console.WriteLine(Row(0))

    上記の様にやってます。アドバイスお願いします。
違反を報告
引用返信

▽[全レス6件(ResNo.2-6 表示)]
■35261 / ResNo.2)  Re[1]: 先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える
□投稿者/ KOZ 一般人(7回)-(2022/12/01(Thu) 14:19:47)
  • アイコンNo35259に返信(ま〜さんの記事)
    > テキストファイルの内容に先頭にスペースがあるファイルを読み込んでRichTextBoxへ書き出すと先頭のスペース全部が削除されます

    こういうふうに書くということは、どこでスペースが削除されているのか、調べていないということですか?
    せめて原因がどこにあるか突き止めてから書き込みましょう。
    RichTextBox は関係ないですよね?

    「TextFieldParser.TrimWhiteSpace プロパティ」
    https://learn.microsoft.com/ja-jp/dotnet/api/microsoft.visualbasic.fileio.textfieldparser.trimwhitespace?view=netframework-4.8
    を False にしてください。

違反を報告
引用返信
■35263 / ResNo.3)  Re[1]: 先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える
□投稿者/ 魔界の仮面弁士 大御所(1496回)-(2022/12/01(Thu) 14:39:24)
  • アイコンNo35259に返信(ま〜さんの記事)
    > テキストファイルの内容に先頭にスペースがあるファイルを読み込んで
    > RichTextBoxへ書き出すと先頭のスペース全部が削除されます
    どこまで調査されましたか?

    その事象は、RichTextBox の問題なのでしょうか。
    テキストファイル読み取りの問題なのでしょうか。


    > RichTextBox1.Text = Row(0)
    この時、Row(0) の先頭に空白が含まれているかどうかを確認済みでしょうか?


    Row(0) の先頭に空白が既に含まれていたのであれば、
    「先頭に空白があるファイル」の読み込みは成功していて
    「RichTextBoxへ書き出すとスペースが削除される」という状況といえるでしょう。

    その場合、質問時に TextFieldParser に関するくだりを述べる必要はなく、
    単純に「RichTextBox1.Text = " 1 2345"」に関する動作を示すだけで良いはず。


    一方、Row(0) の時点で先頭空白が失われてしまう状況なのであれば、
    RichTextBox は一切関係ないことになります。その場合はファイルの
    読み込み手順によるもの(TextFieldParser を使うことの是非)でないかを調べたり
    ファイル内容に問題が無いか(空白に見えるが、実は別の不可視文字だったとか)を
    調べることになりますよね。場合によっては、
     RichTextBox1.LoadFile(DataPath & "文字.TXT", RichTextBoxStreamType.PlainText)
    の結果と比較してみても良いかもしれません。


    > 上記の様にやってます。アドバイスお願いします。
    結論から言えば、TextFieldParser が原因です。
    このクラスは先頭末尾空白を自動的に削除しますし、
    改行のみの行(いわゆる空行)も無視する仕様です。

    先頭末尾空白については TrimWhiteSpace プロパティで抑制できますが
    空行無視は回避策がなかったはずなので、要件次第では
    TextFieldParser 以外の選択肢を検討した方が良いかと思います。
違反を報告
引用返信
■35264 / ResNo.4)  Re[2]: 先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える
□投稿者/ ま〜 一般人(26回)-(2022/12/01(Thu) 14:55:09)
  • アイコンKOZさん魔界さんありがとうございます

    ご指摘の様にRichTextBoxは関係無くファイルから変数に読み込んだ段階で消えています。
    仕様なんですね。なんか私にはハードルが高くなってきました。

違反を報告
引用返信
■35265 / ResNo.5)  Re[3]: 先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える
□投稿者/ KOZ 一般人(8回)-(2022/12/01(Thu) 16:43:39)
  • アイコンNo35264に返信(ま〜さんの記事)
    > KOZさん魔界さんありがとうございます

    「魔界さん」ではなく、「弁士さん」と呼びましょう。
    # 遠い昔、本人がおっしゃってたので(^_^;)

    > ご指摘の様にRichTextBoxは関係無くファイルから変数に読み込んだ段階で消えています。
    > 仕様なんですね。なんか私にはハードルが高くなってきました。

    弁士さんが書いてらっしゃいますが要件次第です。
    項目に改行がない、空行を無視して良いなら TextFieldParser で充分かと。

違反を報告
引用返信
■35269 / ResNo.6)  Re[4]: 先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える
□投稿者/ ま〜 一般人(27回)-(2022/12/05(Mon) 15:33:41)
  • アイコン出来ました。
    ありがとうございます。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-6]






Mode/  Pass/


- Child Tree -

2024/11/22(Fri) 21:19:35 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする