初心者です
c言語でエディタを作るにはどういったライブラリやら命令が必要ですか?単純に文字表示命令で書いて位置をずらしつ表示ですか?
メモ帳みたいなのはまた別の命令が必要なのでしょうか?
よろしくお願いします
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答8件
0
既出ですが、エディタを作るには実際にC言語で書かれたエディタのソースを参考にするのが一番です。
CLI限定に絞るならターミナル表示や標準入力周りを上手く拾わないといけません。
ncursesなどのライブラリはそこらへんを上手く扱ってくれるので、がっつり作るならこういうライブラリを使うのが良いでしょう。
ちっちゃいエディタを自作してみたいだけならこういうエディタのソースを見てみればだいたいの仕組みがわかると思いますよ。antirez/kilo
投稿2018/05/10 01:27
総合スコア416
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/10 14:14
2018/05/10 21:18
2018/05/19 16:50
2018/05/21 23:17 編集
0
vi, micro emacs, ed, sed といった ちいさなエディタのソースをみつけてきて
糖鎖するとよいです。
(昔はこれらが 英語版しかなくて、日本語対応させることをしてみたことがあります)
投稿2018/05/09 21:08
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
PSE portable Screen Editorという本に、エディタのCソースコードが掲載されていました。VZエディタを移植する前は、PSEを使っていました。C言語教育にもソースコードを利用していたように記憶しています。
現在、横浜市中央図書館と国会図書館にはあると検索では出てきました。 ISBN 9784915718199
ps.
VZエディタはアセンブラです。C言語で書かれたlessと同じような仕組みで画面の表示の高速化を図っています。アセンブラからCのソースを起こすのもいいかもしれません。
国会図書館ではFDの電子ファイルの読み出しをさせてもらえません。FDだったかどうか覚えがなく、、、。
投稿2018/05/18 11:10
総合スコア27
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/18 12:05
2018/05/20 18:14
0
テラタームとか、puttyみたいなものを書いたことがあります。その経験からすると3つのパーツが要ります。
-
画面に編集内容を表示する部分。単純なテキストであれば改行以外はテキスト表示するだけ。編集内容の文法に応じて、色を塗ったり改行する場合は、ここで実現する。
-
テキストを編集する部分。キー入力に応じて、編集内容を変える部分。普通のエディタには、カーソルかマウスでクリックとかがあるのクリックされたときにどうするのか実現する。何かを一括変換したり、もっと高度な自動化機能が必要な時は、ここで実現する。
-
編集内容をファイルにセーブしたり、プログラムに渡す部分。テキストファイルを読み書きするだけなら、fileをopen=>read=>write=>closeを行う。ブラウザに組み込むのであれば、HTTP GETしてPUTする部分。
どこから作るかは好みなのですが、プログラム初心者なら2. ではないかと思います。配列に文字列を入れて、いろいろやってみる。見た目にインパクトがある何かを作るのであれば1. ツール等の動作が不明でなんとか制御したいなら、3。
投稿2018/05/13 10:27
総合スコア580
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/11 00:07
2018/05/11 09:15
2018/05/11 20:57
2018/05/11 21:03
2018/05/11 21:13
2018/05/11 21:24
2018/05/19 16:36
0
エディタを作る目的は何でしょうか?
アプリ内の入力でテキスト編集したいという事でしょうか?
C言語で作る意図は何かあるのでしょうか?
メモ帳と言うことから、するとWindowsかと思いますが、編集用のWindowsを作成し、そこでの編集を行いたいと考えます。その場合、C言語での作成は困難と思います。まず、C言語から、Windowsのライブラリ(Window操作用)を呼び出す事が出来ないと思います。(裏技を別にして、私は知りません)
vi, ed とか、古いエディタはありますが、それらは元々、コンソール(文字出力しかできない端末)ベースです。これらならば、C言語も現実的かと思いますが、、。
肝心なところを忘れていました。
アプリ内で、使うならば、TextBoxとかで複数行モードにしておけば、メモ帳程度の機能があったかと。(MFCの頃、手抜きで使った) MFCの最初の頃は、64Kの壁がありましたが、いつの間にか、無くなっていました。(多分、あるでしょうが、未確認)
全て、自分でやろうとすると、全ての入力と表示を管理する事になります。まず、ここからですが、初心者にはかなりの難易度ではないかと思います。
投稿2018/05/10 11:31
編集2018/05/10 13:28総合スコア6385
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/10 11:48
2018/05/10 13:21
2018/05/10 13:31
2018/05/10 14:34
2018/05/11 10:48
0
こんにちは。
メモ帳ということはWindows向けでしょうか? 極簡単なものなら比較的簡単に作れます。
↓はかなり古いですが、Windows SDKなら恐らく今も互換性があるので参考になると思います。
第74章 メモ帳を作る その1
なお、Windows SDKにある標準機能を使う方法ですので、付加価値を付けるためカスタマイズしようとすると途端にハードルが上がりますが、とっかかりとしては良いかも知れません。
Windows SDK自体の使い方については、「Windows SDK」で検索するとそこそこでてきますが、新しいところがあまりないのが辛いところです。Windows SDKやPlatform SDK等の入手方法が書かれていますが既に場所が変わっている場合が少なくないようです。
Visual StudioのVisual C++をインストールすればWindows SDKもついてきますのでこれを利用するのが楽でよいと思います。
投稿2018/05/10 03:00
総合スコア23272
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/10 14:24
2018/05/10 18:36
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。