• ベストアンサー

コンパイラについて

 今まで普通に使っていたフリーソフトのコンパイラで、少し長めのファイルを読み書きするようなプログラムをコンパイルしたのですが、exeファイルが途中で止まってしまいます。  一方違う市販のコンパイラを使うと、コンパイル&実行共にうまくいきます。また、両者で作成されたexeファイルは容量も違い、後者の方はobjファイルも同時に作成されます。  これは一体どういうことなのでしょうか?プログラムの内容は同じなのに、コンパイラによってexeファイルでエラーが出る、出ないがあるのでしょうか?  また話とは逸れますが、プログラムの処理結果を扱う時に、txtファイルで表示させているのですが、必要な箇所だけ、コピー&ペーストするにはどうしたらいいでしょうか?  例えば何万行のtxtファイルから(必要な箇所を検索等で探し)必要な箇所より上全部または下全部の部分だけを、消去したい時どうしたら手早く消去できるのでしょうか?今私がやっている方法ではctr+(pgup or pgdn)で選択部分を増やしていき消去!ですが、スピードが遅いです。ctl+Aだと全て選択になってしまいますし、どなたかいい方法ご存知な方いらっしゃらないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • gatyan
  • ベストアンサー率41% (160/385)
回答No.2

たとえば、大量にメモリを喰うプログラムなら、コンパイラが16bit/32bitかで使えるメモリが格段に違うので、うまく作らないと16bit環境でメモリ不足で止まってしまうこともありますね 大量行削除は、何行目かがわかっているなら、viやsedなどで 1,234 d や 123,$ d のようにしてアドレス指定で削除できます(コピー&ペーストではありませんが) Windowsでも、使えるviやsedは探せば沢山ありますよ

levino
質問者

お礼

ありがとうございました!参考になりました!

その他の回答 (1)

回答No.1

同じ言語でもコンパイラによって違う処理をするのが不思議ですか? 至極当り前の事だと思いますよ? 同じHTMLでもIEとlynxで見え方は当然ながら違いますよね? コンパイラもアプリケーションプログラムのひとつなので、目的が同じでも中身が(中での処理の)違うものがあっても何ら不思議はないと思います。 txtの大量部分の一括削除ですが、お使いのエディタにもよりますが、Homeキー(もしくはEndキー)がどんな役割を当てられているかお試しなさってはいかがでしょうか。単独では行頭(もしくは行末)へ移動、ctrlと併用でファイル先頭(もしくは末尾)へ移動だと簡単にできそうですね。さらにshift併用で選択範囲拡充だと一回で済むんですが、これはエディタによってそれぞれのキーへの役割が違うのでお使いのエディタのヘルプで探してみてください。

levino
質問者

お礼

ありがとうございました!自分の知識不足でした。

関連するQ&A