tsuduki123 の回答履歴

全96件中21~40件表示
  • C言語、リダイレクト

    C言語の初心者です。 コマンドプロンプトで「./a.out <text.txt」とうつと、text.txtのデータを取得し、表示するプログラムをつくろうと思っています。 試行錯誤の結果 #include <stdio.h> main(){ char abc; scanf("%s",&abc); printf("%c",abc); } だとエラーもなくコンパイルできるのですが、肝心のファイルの中身が一文字までしか表示されません。 これはchar abcでabcを一文字だけの変数にしているからみたいですが、調べてみたのですがどうもここから先に進めません。 どこをどのように変えれば良いですか?お願いします。

  • ORACLE Pro*Cにおけるsignalについ

    開発環境 OS:CentOS DB:Oracle Database 11g 上で,Pro*Cを使用して,DBにアクセスする関数を作成しました(正確には,してもらいました). 上記で作成した関数を,別に作成したプロセスから呼び出しているのですが プロセスの挙動が,期待しないものになります(ゾンビにはならないが,以降の動作をしない). OracleのHPを見ると,Pro*Cは,signalをユーザプロセスに投げるように 読めます(SIGCHLD,SIGPIPE??)が,それ以上の情報を見つけられていません. おそらく,Pro*Cを利用する場合の「お約束」があるのかと思いますが どの辺を調べればいいかお教えください.

  • C言語のプログラミング配列・forを使った検索

    C言語のプログラミングで、配列とforを使った検索の表し方がわかりません。 numにはキーボードから任意の数字を入力し、 1ならば25、2ならば30、、、といったように 対応する数字を表示させ、1行目にない数字が入力された時は 「NoData」と表示させたいのですが、上手くいきません; 本当はもっと配列が多いのですが4つでやってみると #include <stdio.h> main() { int data[2][4]{{1,2,3,4},{25,30,45,50}} , num , i ; printf("num?"); scanf(&num); for(i=0; i>4;i++) if(num== data[0][i]){ printf("number is \n",data[1][i]);} else {printf("NoData\n"); } return0 ; } こうかと思ったのですが上手くいきません、、、 どなたかお願いします!

  • 趣味でプログラミングをしたいのですが

    IT関係は好きで、会社でも一応システムの管理をしています。サーバの管理やネットワーク、そしてアプリケーションの操作などは理解していて会社でのヘルプデスクのようなこともしています。 しかし、プログラミングだけは大昔の学生の時にフォートランを少し講義でかじった程度。(実際あのころは三角形の面積を求めるだけのプログラミングだけでかなりの行を書いてパンチして大型コンピュータに読ませて大量の紙が出てきて非常に大層でした。)その後パソコンが出てきてBASICをやりましたが、寮の会計をしていたので、これはまあまあ夜通しして何とか不完全ながら寮生の請求明細を作成しました。それ以降会社勤めでそれどころではなくなり、30年経って時間ができたので、もの作りの感覚でプログラミングを始めたいと思うようになりました。そこで、いろいろと本を見てみるのですが、BASICのような本当に文章を書いていくような感覚で書ける言語ではなさそうです。その中でも、一応少しでも実用的(会社のちょっとした作業に使えるようなもの)な言語で、50過ぎのおじさんでも、それなりに理解しやすい言語と言うのはないでしょうか?VBAも考えたのですが、完全なプログラムではないのと、できればネットワークでも使えるようなものが良いと思っています。仕事の関係で言うと今残業の管理は手書きなのですが、それを各自がイントラネット上でアクセスして書き込み承認してもらうというようなものを作りたいと思っています。(かなり難しいかもしれないですが、一応Excelではそのロジックで計算する表は作りました。当社の就業時間はややこしいのですが、なんとかできました。)それを ウェブアプリにしてデータベースと連携させて、総務がその各自の集計データを給与ソフトに入力すると言うようなものを作るのが夢なのですが。(相当難しいとは思います。Excelでもできますが、各自にどうして入力させて、承認後の訂正をさせないと言うことが難しいのです。VBAではできますが、配布の問題と承認の問題、保護の問題で頓挫しました。) 趣味の域を超えるかもしれないですが、これはあくまでも最終目標で、それまでは、1+1=2と言うことや、三角形の面積という基本からやるつもりではありますが。あくまでも趣味として楽しく作るのが目的です。そう言う趣旨に合う言語をお教えください。決してそれで食べて行こうなどと言う大それたことは考えてはいません。よろしくお願いします。

  • ASP(VBScript)について教えてください。

    以前、↓で質問を挙げさせてもらった者です。 <http://okwave.jp/qa/q6615640.html> ASPで作成した画面上からADOを用いて、CSVファイルの 項目を表示しようと思ったのですが、エラーが出てしまいました。 エラー箇所を調べてみたのですが、原因がわからず作業が中断しています。 申し訳ありませんが、下記のソースでどこが間違っているのか 教えていただけないでしょうか? ■期待する動作: CSVファイルを読み取り、指定したIDの行の名前(NAME),年齢(AGE)を 表示させる ******* CSVファイル(test.csv)の中身 ******* [ID],[NAME],[AGE] 1,山田,20 2,田中,30 3,佐藤,40 ******************************************* ******* ASP(VBScript)のソース ******* <% Dim objAdo Dim objRS Dim strPath Dim strId Dim strName Dim strAge strId = "2" 'test.csvのパスを取得 strPath = replace(Server.MapPath("test.csv"),"\test.csv","") 'ADOオブジェクトを作成 Set objAdo = CreateObject("ADODB.Connection") 'ADOを使いCSVファイルを扱う準備(オープン)を行う objAdo.Open "Driver={Microsoft Text Driver (*.txt ; *.csv)} ; DBQ=" & strPath & " ; ReadOnly=1" 'SQLを実行し、当該タスクのデータを抽出 Set objRS = objAdo.Execute("select * from test.csv where '[ID]' = '" & strId & "'") →ここからエラーになります。 strName = objRS("'[NAME]'").Value response.write("strName:" & strName & "<br>") strAge = objRS("'[AGE]'").Value response.write("strAge:" & strAge & "<br>") objRS.Close objAdo.Close %> select文内のwhere句で失敗しているように感じたので、 where '[ID]' = '" & strId の部分を下記の3パターンで 試してみたのですが、全てエラーが起きてしまいました。 where [[ID]] = '" & strId where {[}ID{]}' = '" & strId where [ID] = '" & strId CSVファイルのフォーマットは決まっている為、 現在のフォーマットで表示させたいのです。 お礼を言うのが少し遅くなってしまうかもしれませんが、 ご教示いただけると嬉しいです。

  • VBScriptでcsvファイルの編集は出来ますか

    プログラミング初心者です。 ネットや本で調べてみたのですが、どうもわからなかった為、 ここに質問を挙げさせていただきました。 今、担当している仕事で、ASPのファイルを作成しています。 機能としては、あるCSVファイル(test.csv)から 列の値を指定し、その値を含んでいる行を検索し、 その行の値をテキストボックスにそれぞれ表示させ修正(他の行の値は変更しない。)、 もしくは選択した行のみの削除(値を無くすのではなく、行自体の削除)を行いたいのです。 (例) ■修正 test.csvの内容が下記のような場合、 国   |  地方  |  都道府県  ++++++++++++++++++++++++++ 日本 |  関東  |  東京 日本 |  東北  |  青森 日本 |  九州  |  福岡 1.「地方」の列から「東北」の行を選択し、それぞれの値をテキストボックスに表示。 2.1で選択した行の都道府県を「秋田」に変更し、上書き。 3.test.csvの内容が下記のように変更されている。 国   |  地方  |  都道府県  ++++++++++++++++++++++++++ 日本 |  関東  |  東京 日本 |  東北  |  秋田 日本 |  九州  |  福岡 ■削除 1.「地方」の列から「関東」の行を選択し、それぞれの値をテキストボックスに表示。 2.1で選択した行を削除し、上書き。 3.test.csvの内容が下記のように変更されている。 国   |  地方  |  都道府県  ++++++++++++++++++++++++++ 日本 |  東北  |  青森 日本 |  九州  |  福岡 ※前提条件として、1つの列内には同じ値は入らないものとします。 いろいろ調べてみて検索、表示は何とかできそうなのですが、 修正や削除の方法がわかりませんでしたので、 お手数をおかけして申し訳ありませんが、ご存知の方がいらっしゃったら 参考になるソースのご教示をお願い出来ますでしょうか。 初心者ということもあり、そもそもこのような機能をASP(VBScript)で行えるのでしょうか? その点についても、教えていただけると嬉しいです。

  • 可変CSVから固定CSVへのファイル加工

    perlでCSVファィルの加工するプログラムを作ろうと思っております。 プログラム初心者な為どれから手を付ければ良いのか 判りません。 宜しければ サンプル等作っていただければありがたいです。 1.指定されたフォルダの中の 最新更新日付のファイルを読み込みむ 2.5分置きに可変CSVで出力されるデータを出力を 10分単位の固定CSVへ出力する 3.出力の際には以下の固定数字、時間、文字、数字等を入れ 加工した上で固定系CSVの出力をしたいです。 ・固定の数字20450△△△, ・固定の数字 01,   ・年月日時間    YYMMDDhhmm, ・固定数字 01, ・固定文字 TP, ・固定数字 01, ・固定文字 +か-,  元データが△△△19.2の場合は+を出力  -19.2の場合は-を出力   4カラム目を19.5 の場合△△195 ・固定文字 TA, ・固定数字 01, ・固定文字 +か-,  元データが△△△12.2の場合は+を出力  -12.2の場合は-を出力   4カラム目を19.5 の場合△△195 入力のファイル名 20110301.csv ファイルの中身 17549,2011/3/25,0:00:00,19.5,12.2 17550,2011/3/25,0:05:00,19.6,12.2 17551,2011/3/25,0:10:00,19.5,12.2 17552,2011/3/25,0:15:00,19.5,12.2 17553,2011/3/25,0:20:00,19.4,12.2 17554,2011/3/25,0:25:00,19.4,12.2 17555,2011/3/25,0:30:00,19.4,12.2 17556,2011/3/25,0:35:00,19.3,12.2 17557,2011/3/25,0:40:00,19.3,12.2 17558,2011/3/25,0:45:00,19.2,12.2 17559,2011/3/25,0:50:00,-19.2,12.2 ↓ 出力のファイル名 10_200203.dat 20450 , 01,201103250010,1,TP,1,+ 195,TA,1,+ 122 20450 , 01,201103250010,1,TP,1,+ 195,TA,1,+ 122 20450 , 01,201103250020,1,TP,1,+ 194,TA,1,+ 122 20450 , 01,201103250030,1,TP,1,+ 194,TA,1,+ 122 20450 , 01,201103250040,1,TP,1,+ 193,TA,1,+ 122 20450 , 01,201103250050,1,TP,1,+ 192,TA,1,+ 122

  • 1バイトデータの読み出しについて

    こんばんは。 すみません。文字操作?ポインタ操作が苦手なので教えてください。 以下のような構造体があり、その構造体から1バイトずつ読み出して 自作の関数のパラメータ(1バイト指定領域)に渡したいのですが、 構造体から1バイトずつデータを読み出すには、どのようにすればいいのでしょうか? typedef struct { PACKET_HEADER head; unsigned char Sp_Pr_St[1]; unsigned char ctrl_flow[1]; unsigned char product_org[10]; unsigned char product_name[10]; unsigned char product_ver[3]; }PRODUCT_RESPONS; typedef struct { unsigned char head; unsigned char type; unsigned char data_len; } HEADER; どうぞよろしくお願いします。

  • PERL 文字コード

    アップロードするファイルを指定して同じファイル名で拡張子を変えてログを出力したいのですが、半角カナなどがあると化けたファイル名になってしまいます。 どう変換すればよいのでしょうか?

    • ベストアンサー
    • nagomitei
    • Perl
    • 回答数2
  • テキストファイル(tsv)を改行したい

    WindowsXP環境でtsvファイルを扱いたいのですが、 このtsvファイルが改行無く出力されています。 このファイルに改行を入れたいと思っています。 【例】 (現状) AAA   100   6   BBB   200   5   CCC   150   4   ・・・ ↓ (結果)3つめのタブを改行に変更したい。 AAA   100   6 BBB   200   5 CCC   150   4 ・ ・ ・ 新規ソフトウェアのインストールやフリーソフトを導入できない端末なので、 VBScriptで実現できないかと思っているのですが、なかなかうまくいきません。 どなたかお知恵を拝借いただけませんか? よろしくお願いします。

  • プログラミング言語

    現在文系私立大学の一年生です。 パソコンを扱うのが好きなので、在学中にプログラミング言語を覚えたいと考えています。 が、今はC、C+、C++、Javaなどの言語の名前だけを知っている状態です。 どのプログラミング言語を学ぶと役に立つのでしょうか? また、どのプログラミング言語が簡単でどのプログラミング言語が難しいなども教えていただけるとありがたいです。 また、私は数学がかなり苦手で文系に進んだのですが、プログラミングは数学が出来ない人間にも可能なのでしょうか? あとOSですが、プログラミングをするにはWindowsよりもLinuxの方が良いのですか? UbuntuとWin7のデュアルブートの経験はあります。今度はDebianというものでやってみようかなと思っています。

  • コンストラクタ内での動的メモリ割り当ての対処

      こんにちは。    VS.NET2003でC++を使いプログラミングをしています。   コンストラクタ内で、動的にメモリを割り当てたクラスを何度も生成すると動きがおかしくなるようなんです。   メモリブロックでのエラーがでたり、アプリがフリーズします。   以下はそのクラスのコンストラクタのコードです。 ClassA::ClassA(double x, double y, WORD tm, WORD len, WORD rat, ...) : CBullet(x, y, 0, 0, 0, 0, 20), LT(tm), Tp(rat), Len(len), Tc(0), pt(NULL) { pt = new WORD[rat]; va_start( list, rat ); for(WORD i = 0; i < rat; i++) { pt[i] = va_arg(list, WORD); } va_end(list); }  new で動的に割り当て、va_startマクロを使って値を代入しています。  二重解放にならないように、関数内でdeleteしたptにNULLを代入させ、ifを使って弾くようにしているんですが、それでも万全ではないのでしょうか?  フリーズしたりメモリブロックでエラーを起こしたりする原因が分からない状態です。   よろしくお願いします。

  • 内部クラスのインスタンスを外部クラスが保持する場合

    C++での内部クラスの宣言の仕方なのですが、例えば、 class Outer { private:    class Inner; public:    Outer();    ~Outer(); }; class Outer::Inner { public:    Inner();    ~Inner(); }; のように単純に内部クラスが宣言されているだけならば、 その具体的な定義を外側に書くことは可能と思うのですが、 class Outer { private:    class Inner    {    public:       Inner();       ~Inner();    }; public:    Outer();    ~Outer();    Inner inner; //内部クラスのインスタンス }; のように外部クラスが内部クラスのインスタンスを保持していた場合には、 上記のようにインスタンス作成より上で外部クラスの宣言内に内部クラスの定義を書かないと、 コンパイルが通らない(VC++2008)と思います。具体的な中身がないままインスタンスを 作っているのでエラーを吐く理由もわからないでもないですが、 見易さ的に上の例のようにかけないのかなとも思ったりします。 インスタンスを外部クラスに持たせずともどうとでもなるのですが、 あえて上のようなことをしたくなった場合には下のような方法で記述する以外ないのでしょうか?

  • LEFT JOINの条件式で=’’を使用した場合

    以下のSQLを実行した場合、レコードを1件取得して欲しいのですが、 なぜか上手く取得できません。 ご存知の方がいらっしゃいましたら、教えてください。 -- SQL1 --------------------------------------------------- select   MAIN.MAIN_NAME,   nvl(SUB1.CODE is NULL, 0) as SUB_CODE1,   nvl(SUB2.CODE is NULL, 0) as SUB_CODE2 from   MAIN_TABLE MAIN    left join SUB_TABLE SUB1 on MAIN.CODE = SUB1.CODE                    and SUB1.ZYOUKEN = '1'    (1)    left join SUB_TABLE SUB2 on MAIN.CODE = SUB2.CODE                    and SUB2.ZYOUKEN = ''     (2) where   MAIN.CODE = 'XXX' ----------------------------------------------------------- 質問1. どうも、(2)の部分を空文字(?)ではなく何か値を入れると正常に1件 取得できるようなのですが、なぜ外部結合しているにもかかわらず 0件になってしまうのかが良く分かりません。 質問2. やはり条件に空文字を使用するのはよろしくないでしょうか? ※補足 念のため、以下のSQLを実行したところ、こちらは問題なく1件取得 できているので、抽出条件は間違っていないです。 -- SQL2 --------------------------------------------------- select   MAIN.MAIN_NAME from   MAIN_TABLE MAIN where   MAIN.CODE = 'XXX' ----------------------------------------------------------- 以上です。宜しくお願いします。

  • 教えていただけませんか?C言語 文字列について

    学校で文字列のプログラムを組む課題が出ました 以下のような課題です 1つの文字列を読み込んで,ピリオドで改行し出力するプログラムを作成しろ ・読み込む文字列の長さ 最大で80文字 ・文字列の終わりは必ずピリオドで ・文字列の途中に現れるピリオドの次には必ずスペースが続く ・ピリオドに続くスペースは出力しない 例えば Hello. It is fine. Good-bye.  と打つと Hello. It is fine. Good-bye. と表示されるようなプログラムです そして自分で以下のプログラムを組みました ----------------------------------------------------------- #include <stdio.h> #include <string.h> int main(void){ int i; char A[100]; char *a; fgets(A,80,stdin); a = strtok(A, "."); printf("%s.\n",a); while(a != NULL){ a = strtok(NULL,"."); if (a != NULL){ printf("%s.\n",a); } } return 0; } --------------------------------------------------------------- ですがこれだとピリオドの後のスペースと文字列の後によくわからない改行が出力されてしまいます 自分で何とかするべきなのでしょうがどうにもうまく行きません どこをどうすればいいのか教えていただけないでしょうか?

  • ポインタを使ったプログラム

    Cを勉強し始めて3ヶ月ほどの初心者です。 ポインタの概念がどうしても理解できず、つまずいています。以下のような簡単な問題があります。 「関数void func( int *n1, int *n2, int *n3 )を作り、1以上50以下の整数で,2または3または7で割り切れない整数を画面に表示するプログラムを作れ。なお、第1,第2,第3引数のアドレスの中身は、それぞれ2,3,7で割ったときのあまりとする。」 2で割ったときのあまり、3で割ったときのあまり、7で割ったときのあまりの積が0でないときに表示していけばよい、という考えから、以下のようなプログラムを作ってみました。 #include<stdio.h> void func(int *n1, int *n2, int *n3); int main(void) { int m,*m1,*m2,*m3; m1 = &m; m2 = &m; m3 = &m; for(m=1;m<=50;m++){ func(m1,m2,m3); if(*m1 * *m2 * *m3 != 0){ printf("%d ",*m1 * *m2 * *m3); } } } void func(int *n1, int *n2, int *n3) { *n1 = *n1 % 2; *n2 = *n2 % 3; *n3 = *n3 % 7; } ただ、本質がわかっていないまま作っているので、明らかに間違っていると思います。ポインタを使わなければ作れると思うのですが。 どこが間違っているのか、正しいプログラムは何か、初心者にもわかるように教えていただければありがたいです。

  • ポインタを使ったプログラム

    Cを勉強し始めて3ヶ月ほどの初心者です。 ポインタの概念がどうしても理解できず、つまずいています。以下のような簡単な問題があります。 「関数void func( int *n1, int *n2, int *n3 )を作り、1以上50以下の整数で,2または3または7で割り切れない整数を画面に表示するプログラムを作れ。なお、第1,第2,第3引数のアドレスの中身は、それぞれ2,3,7で割ったときのあまりとする。」 2で割ったときのあまり、3で割ったときのあまり、7で割ったときのあまりの積が0でないときに表示していけばよい、という考えから、以下のようなプログラムを作ってみました。 #include<stdio.h> void func(int *n1, int *n2, int *n3); int main(void) { int m,*m1,*m2,*m3; m1 = &m; m2 = &m; m3 = &m; for(m=1;m<=50;m++){ func(m1,m2,m3); if(*m1 * *m2 * *m3 != 0){ printf("%d ",*m1 * *m2 * *m3); } } } void func(int *n1, int *n2, int *n3) { *n1 = *n1 % 2; *n2 = *n2 % 3; *n3 = *n3 % 7; } ただ、本質がわかっていないまま作っているので、明らかに間違っていると思います。ポインタを使わなければ作れると思うのですが。 どこが間違っているのか、正しいプログラムは何か、初心者にもわかるように教えていただければありがたいです。

  • Cでアルゴリズムの差し替えができるようにするには?

    C++ならstrategyパターンを実装した経験はあるのですが、Cで同じような事ってできるのでしょうか?開発中のアルゴリズムなので、差し替えや変更に強い設計にしたいのですが、どうすればいいのかわかりません。どなたかお知恵をお願いします。

  • クラスの設計について

    例えば、システムAPIのパラメータを保持しているクラスは、カプセル化という点でAPIの呼び出しまで行ったほうが良いのでしょうか?(処理を任せる) getParam()などでパラメータを取得する形にしてしまうと戻り値が具体的な型になってしまい、 抽象化しづらくなってしまいます。 もちろんケースバイケースなのかもしれないですが。

  • ファイルの作成・書き込み・読み込みについて

    ファイルの取り扱いについて、どのように記述すればいいのかが分かりません。 分からないことが多いので(1)~(4)の質問に分けています、Cの勉強は趣味程度にしかできていないので、詳しくご回答いただけると嬉しいです。 自分なりに書いてみます、間違いがあればご指摘宜しくお願いします。 (1)Aを頭文字にして100個のcsvファイルを作成 (a1,a2…a100) char A[100] FILE *fp; for(i=1;i<101;i++) { snprintf(A,sizeof A,"A%d.csv",i); if((fp = fopen(A,"w"))!=NULL) {exit(1);} } (2)A1を開きデータを入れる、この動作を同様に2~100で繰り返す。 A1に入れたいデータはx,y,zで1000行 fp = fopen("A1.csv","a"); for(z=1;z<11;z++) { for(y=1;y<11;y++) { for(x=1;x<11;x++) { fprintf(fp,"%d,%d,%d\n",x,y,z); } } } fclose(fp); これでこんな感じに書き込まれるはず・・・ 1,1,1 2,1,1 3,1,1  ・  ・  ・ 10,10,10 これを同様に2~100のファイルに対して一気に行いたいですが、書き方が分かりません。 (3)再びA1を開きx=10,Y=10の時のzの値を知りたい。 こんな事はできるのでしょうか? もし無理なら~行目のデータを呼び出す (4)そしてA1を開きx=10,Y=10の時の、zだけを上書き。 長くなってすいません、分からない事だらけなので宜しくお願いします。