ベルリン旅行の予習に最高な映画3選

「アスキー」「バイナリー」
FFFTPこの二つのモードがありますが、用途の境目がわかりません。

FFFTPでJavaファイルを上げる場合なのですが、
ローカル(Windows)のサーバー側(Linux)へFFFTPで転送する際に
作業現場では“バイナリー”で上げて欲しいと言われています。

私の考えでは、
テキスト(人間が読める言語)という定義のアスキーの設定で上げるものだと思っていたので驚いたのですが、何故Javaファイルをバイナリー設定で上げる事になるのでしょうか?


[現時点でまとめてある認識]

アスキー
--------------------------------------------------------------
(1)基本的に人間が読めるテキストベースのファイルモード
(2)サーバの設定に合わせて改行コードが変換してファイルを上げる
(3)テキストファイル系(txt/html/JS/CSS..)

バイナリー
--------------------------------------------------------------
(1)基本的に機械が読み込む為のファイルモード
(2)ファイルを上げた際に何も起こらず、そのままファイル上げることができる。
(3)画像ファイル・音楽ファイル系(jpg/GIF/PNG/mp3..)


この認識の上ですと、
“Javaファイルは人間が読めるもので、テキストファイルである”ということから、“アスキー”で上げるのが妥当だとは思っています。

Javaファイルを“バイナリー”で上げる理由は何なのでしょうか?
コンパイルの際に改行コードが変換されると不都合があるからなのでしょうか?


認識で間違っている点がございましたら、
ご指摘・ご教授の程宜しくお願いします。




参考サイト様
-------------------------------------------------------
ttp://www.res-system.com/item/339
ttp://www.komakusa.net/internet/appendix.html
ttp://www.wanichan.com/beginner/pc/win19.htm

このQ&Aに関連する最新のQ&A

A 回答 (2件)

まずコンピューター(LinuxもWindows)から見れば、


ファイルに対して「アスキー」なんていう属性はなく
テキストファイルを含め
どんなファイルでもバイナリファイル(0と1のデジタルデータ)です。

ffftpでは
アスキーモードでアップロードすると
Cr,Lfの改行コードがLfに置換され
逆にダウンロードする際は
LfがCr,Lfに置換されます。

これはWindowsの標準の改行コードがCr,Lfで
LinuxやUNIXがLfを標準の改行コードにしている為ですが
昨今の優秀なWindowsのテキストエディタは
ほとんどの文字コードに対応し、改行コードも設定できます。
ですからわざわざ「アスキー」でアップロードする意味がなくなってきています。
(WindowsでLfの改行で保存し、バイナリでアップすれば良い。
逆にこのファイルをアスキーでダウンロードするとCrLfになります。)

どちらにしても改行コードを統一するメリットはあります。
例えばviエディタでCr,Lfのファイルを開くと「CTRL+M」とかでて見づらいですし、
Lfだけだと、昔のWindowsのメモ帳等で開くと改行されません。
(Linuxをsambaで直接みてる人にとってはCr,Lfの方が都合が良い場合もあります。)
またVSSやSVN等のバージョン管理ソフトを使っていると、改行コードが変わっただけで
ファイルに変更があったと勘違いされてしまいます。
そういう場合、意図しない改行コードの変換があっては困ります。

#1さんの言われるように仕様的に問題があるのかもしれません。
あとはclassファイルを誤ってアスキーで転送するミスが少なくなる
ぐらいでしょうか。

ただ作業現場の人に理由を聞かないと推測の域をでません。

この回答への補足

>まずコンピューター(LinuxもWindows)から見れば、
>ファイルに対して「アスキー」なんていう属性はなく
>テキストファイルを含め
>どんなファイルでもバイナリファイル(0と1のデジタルデータ)です。

0と1の事をすっかり忘れておりました…

そうですよね。
コンピューターは0と1のデジタルデータで出来ているのですよね。
コンピューター暦も長いのにお恥かしい限りです(汗)


>昨今の優秀なWindowsのテキストエディタは
>ほとんどの文字コードに対応し、改行コードも設定できます。
>ですからわざわざ「アスキー」でアップロードする意味がなくなって>きています。
時代と共に変わっていっているのですね…
そうなると、作業場でアスキーとバイナリーの違いがあるのも少しだけ関連があるように思えます。

>あとはclassファイルを誤ってアスキーで転送するミスが少なくなる
ぐらいでしょうか。

そこまで考えた事がありませんでした。
現場で詳しい方の手が空いた時にでも理由を聞いてみます。

とても参考になりました。
FFFTPなどでファイルを転送する際は気を付けるように致します。

ありがとうございました。

補足日時:2008/01/22 21:50
    • good
    • 2

.javaファイルはソースコードだから、私もアスキーモードで転送しています。


.javaファイルをコンパイルしてできる.classファイルでしたら、バイナリーモードで転送しますが。

恐らく、作業現場のサーバの仕様で、改行コードを変換されるとおかしなことになるからじゃないでしょうか。

この回答への補足

早速のご回答ありがとうございます。

>javaファイルはソースコードだから、私もアスキーモードで転送しています。
質問者さんのところはアスキーであげられているのですか。
私のところがバイナリーで上げているのは特異と考えて居た方が良いのかもしれませんね(--;

>javaファイルをコンパイルしてできる.classファイルでしたら、バイナリーモードで転送しますが。

やはり、
Javaファイル(アスキー)、
classファイル(バイナリー)、
これが一般的ですよね…(汗)

>恐らく、作業現場のサーバの仕様で、改行コードを変換されるとおかしなことになるからじゃないでしょうか。

考えとしては此処も考えたのですが、
どうも納得がいかず質問をさせて頂いておりました(汗)


ご回答ありがとうございます。
Javaファイルを必ずしもバイナリーで上げるものだと勘違いしなくて済みました。

補足日時:2008/01/20 18:31
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QFTPのアスキーモードってバイナリーモードって?

FTPにはアスキーモードとバイナリーモードとありますが、どちらを使用したらよいか分かりません。
例えばWINDOWSのnotepadで作成したsqlファイルをUNIXサーバへ転送する時はアスキーモードでしょうか?
internetでダウンロードしたEXEファイルをWINDOWSからUNIXサーバへ転送する時はバイナリーモードでしょうか?教えて頂けないでしょうか?よろしくお願いいたします。

Aベストアンサー

http://www.komakusa.net/internet/appendix.html
http://flashee.boo.jp/cgi/faq/topics_board.cgi?mode=cat&id=26

アスキーモード ;改行コードを自動変換する(テキストモード)
バイナリーモード;その他、画像ファイルや音楽ファイルなど

上記サイトが分かりやすいでしょうか?

Qバイナリデータとテキストデータの違いについて

宜しくお願いします。

バイナリデータを用語辞典で調べると
「テキスト形式(文字データ)以外のデータ形式全般のこと。
実行可能形式のコンピュータプログラムや、画像や音声、
動画などのデータなどがバイナリデータにあたる。」
(http://e-words.jp/w/E38390E382A4E3838AE383AA.html)
とあります。

これでは、バイナリデータとテキストデータの違いが分かりません。

テキストデータはコードの集まりで、
さらに細かくすると0と1の集まり(?)だから・・・
と考えるとバイナリデータとテキストデータの
違いが分かりません。

Q1.私は何が分かっていないのでしょうか?
Q2.バイナリデータとテキストデータの違いを教えてください。

宜しくお願い致します。

Aベストアンサー

バイナリデータは01の集まりです。
テキストデータは文字としての意味が与えられて居ます。ただテキストデータの01としての表現方法はプラットフォーム(OSやアプリケーション)によって異なります。例えば英文字コードでもメインフレームで使われるEBCDICもあり、unixやPCで使われるASCIIもあります。また日本語など英語以外の文字をあらわすのには、さらに多くの種類があります。また改行を表す文字もいろいろです。
例えば telnet で他のコンピュータにログオンして通信する時の文字コードはASCIIで、改行はCRLFと決まっているので、そうでないコンピュータはtelnetプログラムが自分のコンピュータのコード体系と相互変換します。

ftpでテキストデータを転送する時も同じくASCIIとCRLFと決まっています。ただ日本語文字の時にどのコードを使うかは規格では決まっていないので、ftpクライアントで、相手コンピュータの日本語コード種類を指定して、自分と合わなければ転送時に相互変換します。

Cプログラムでもテキストの改行は'\n'と決まっているので、そうでないWindowsの場合はCプログラムとの間でCRLFと'\n'の相互変換が、ライブラリ中で自動的に行われます。

そういった変換を全く行わないのがバイナリデータです。画像ファイルなどはjpegと形式が決まればどのコンピュータでも同じフォーマットなので変換の必要はありません。逆にテキストとみなして変換するとデータが壊れてしまいます。

バイナリデータは01の集まりです。
テキストデータは文字としての意味が与えられて居ます。ただテキストデータの01としての表現方法はプラットフォーム(OSやアプリケーション)によって異なります。例えば英文字コードでもメインフレームで使われるEBCDICもあり、unixやPCで使われるASCIIもあります。また日本語など英語以外の文字をあらわすのには、さらに多くの種類があります。また改行を表す文字もいろいろです。
例えば telnet で他のコンピュータにログオンして通信する時の文字コードはASCIIで、改行はCRL...続きを読む

QFTPコマンドでディレクトリごとファイル移動できるコマンドはありますか?

タイトルどおりなのですが、FTPでファイルを転送する際に、サブフォルダを含むディレクトリごとファイル転送するコマンドはありますでしょうか。
ディレクトリの中にあるすべてのファイルを移動したいのですが、サブフォルダがたくさんあるので、わざわざディレクトリの場所へ移動してmputを繰り返すのはめんどうで仕方ありません。
よろしくお願いします。

Aベストアンサー

ご使用になるOS環境が書いてないのですが、Linux,BSD等ならncftpで、get -R dir。
Windowsならffftpを使えば良いと思います。

Qsqlplusで表示が変なので、出力を整形したい。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------

上記のように意味不明な形式で出てきます。

例えばこんな風に

select カラム1,カラム2,カラム3 from hoge;

カラム1 1の値
---------------------------
カラム2 2の値
---------------------------
カラム3 3の値

等のように分かりやすく表示できないでしょうか?

ちなみにOracle9iR2を使用しています。
sqlに関するツールは使用できないルールでして、あくまでsqlplusのコマンド上でみやすくしなければなりません。

分かりづらくですいませんが、皆さま、ご教授お願いします。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
-----------------------...続きを読む

Aベストアンサー

SQLPLUSを起動して、

SQL>set linesize 列数

でどうだ。

SQL>show linesize

で確認ができる。

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

QOracle(オラクル)で、日付時刻型の検索方法について

質問させていただきます。
データベースはオラクルを使っていて、
SQL文で、抽出するときにエラーが出て困っています。

日付時刻型が「2005/05/26 19:13:00」という感じで入ってます。
2005/05/26 を抽出したいのですが、
BETWEEN '2005/05/26 00:00:00' AND '2005/05/26 23:59:59'

だと、エラーでできません。
どなた様か、ご教授よろしくお願いしますm(_ _)m

Aベストアンサー

日付検索を行う場合は、以下のように書式を含める必要があります。

col BETWEEN TO_DATE('2005/05/26 00:00:00','YYYY/MM/DD HH24:MI:SS') AND TO_DATE('2005/05/26 23:59:59','YYYY/MM/DD HH24:MI:SS')

ただ、厳密には

col >= TO_DATE('2005/05/26', 'YYYY/MM/DD')
AND
col < TO_DATE('2005/05/27', 'YYYY/MM/DD')

と書くべきでしょうね。

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

Q「以降」ってその日も含めますか

10以上だったら10も含める。10未満だったら10は含めない。では10以降は10を含めるのでしょうか?含めないのでしょうか?例えば10日以降にお越しくださいという文があるとします。これは10日も含めるのか、もしくは11日目からのどちらをさしているんでしょうか?自分は10日も含めると思い、今までずっとそのような意味で使ってきましたが実際はどうなんでしょうか?辞書を引いてものってないので疑問に思ってしまいました。

Aベストアンサー

「以」がつけば、以上でも以降でもその時も含みます。

しかし!間違えている人もいるので、きちんと確認したほうがいいです。これって小学校の時に習い以後の教育で多々使われているんすが、小学校以後の勉強をちゃんとしていない人がそのまま勘違いしている場合があります。あ、今の「以後」も当然小学校の時のことも含まれています。

私もにた様な経験があります。美容師さんに「木曜以降でしたらいつでも」といわれたので、じゃあ木曜に。といったら「だから、木曜以降って!聞いてました?木曜は駄目なんですよぉ(怒)。と言われたことがあります。しつこく言いますが、念のため、確認したほうがいいですよ。

「以上以下」と「以外」の説明について他の方が質問していたので、ご覧ください。
http://oshiete1.goo.ne.jp/kotaeru.php3?qid=643134

QEXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい

メインプログラム(EXCEL VBA)より、
他のフォルダーにあるEXCELの項目の内容を取り込みたいです。
たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。

・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。
・作業者が選んだパスとブックもMsgBoxで表示できてるので、もらう相手の場所も取得できてます。

・となると次はOPEN,INPUTですか?
テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。

よろしくお願いします!

Aベストアンサー

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む

readBook.Close False ' 相手ブックを閉じる
Set readSheet = Nothing
Set readBook = Nothing

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Ce...続きを読む

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング