
社内で報告書の管理を行うのに連番を取る事が出来るような仕組みをWEB上で作りたいと思っています。高度な開発環境を用意できないので(本業とは全く別な片手間なので)javaやC言語(linuxに入っているもの)、HTMLなど開発環境を揃えるのにお金が掛からない方法で出来るのかアドバイスお願いします。
イメージでは
1.不特定多数の人間が報告書を作成
2.作成者が報告書の連番を取るページへアクセス
3.例えば、「番号取得」のボタンを押すと番号が発行される。
ここで一番疑問に感じていることは1回のアクセスでは連番を発行できても、次のアクセスではカウンターにリセットがかかっているのではないのか。ということです。
不特定多数の人間がいつアクセスしても最新の番号を取れるようにしたいのです。どこかに最新の発行番号を保持しておかないといけないのです。
プログラミングの経験は無いのですが、出来るようであれば自分の勉強を兼ねて挑戦したいと考えていますのでご回答の程、宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
アクセスカウンタと同じ原理でよいなら簡単に実現可能です。
単純に、アクセスのたびにカウントアップするデータをファイルまたはデータベースに保持すればよいのです。
多重アクセス時の制御を行う必要があるのでロック機構が必要になると思われます。
Cで書くなら
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPIN …
が参考になると思います。
問題は“運用との兼ね合い”でしょう。
発行した連番がキャンセルになったとき、その番号は欠番でよいのか?
など…。
参考URL:http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPIN …
早速の回答ありがとうございます。
参考URLにアクセスしてみたのですが、「Cを理解している」ことが前提のようですね。まずココからはじめなければならないですね。やってみます。
それからおっしゃるように運用面ですね。欠番はいいと思うのですが、WEBサーバ自体が自部署での運用ではないので管理者との交渉も必要ですね。詳しく知らないのですがプロバイダですらCGI禁止がありますので、そもそもCGIを置かせてもらえるのか?
また、再度質問になってしまい申し訳ないのですが、perlとは何者なんでしょうか?まだ少ししか調べられていませんが無料で配布されているようですね。Cでもperlでもどちらでもイチから勉強することになるのですが、
・この目的だけに限定した場合どちらがよいのか
・今後の自分のスキルアップとしてはどちらが良いのか
お考えありましたら教えて下さい。
No.3
- 回答日時:
同時に二人の人が番号の発行を要求したときに、同じ番号を発行しないようにプログラムを作るには高度に熟練したプログラミング技術が必要です。
その番号が絶対に同じ番号を2つ発行すると困るという種類のものでしたら、やはり専門の方に頼んだほうがよいとおもいます。ご回答ありがとうございました。
素人にはむりなんですかね。そこまで大げさにすることはできないので自分でやるしかなさそうです。
ありがとうございました。
No.2
- 回答日時:
perlはプログラム言語です。
C/C++のような「コンパイラ言語」と違い、コンパイル(プログラムテキスト→機械語への変換)を必要とせず、人間の書いたプログラムテキストがそのまま実行可能です。
コンパイラ言語に対してインタプリタ言語またはスクリプト言語と呼ばれます。
実行時にテキストを解釈しする必要があるためコンパイラ言語に比べて実行速度が遅くなります。
スクリプト言語のメリットは「テキストそのものが実行プログラムである」事です。
Webサーバー管理者から見れば「機械語のカタマリが動いている状態」より「テキストファイルが動いている」状態のほうが安心感があるでしょう。
作った人以外の人でもプログラムテキストを読んで不具合の発見が可能だからです。
(Web管理者が修正を加えるかどうかは管理規約によります)
Javaも(多くの場合は)インタプリタですが実行速度を稼ぐ為に中間コードといわれる“人間には読み下すことのできない”状態で保存されます。
中間コードで保存されるタイプのインタプリタ言語はスクリプト言語とは呼びません。
この目的(と言うか、CGIに限定した場合)では資料の多さ、不具合修正の容易さでCよりもperlが向いているでしょう。
Web管理者にとってみてもCGIでの利用実績が多いperlの方が安心できると思います。
Linuxベースのサーバーであればphpという選択肢もありますが、現状ではperlの方が資料が豊富です。
将来のスキルアップを視野に入れた場合、スキルアップの目的/方向性を考える必要があります。
linuxベースのWebプログラムを目指すならperl/php/javaの内から選ぶべきでしょう。
もっと汎用的なプログラムを目指すならC++/Javaでしょうか。
スキルアップの目的/方向性が不明であり、Web管理者の管理方針もわからないので今回は“自信無し”です。
本当に早い回答ありがとうございます。
回答して頂いたようにperlでやってみようと思います。今からの勉強なんでいつになるか分かりませんが・・・。Okwebのどこかにwindows用の無料perlの開発キットのようなものへのリンクがあったと思いますので再度探してみます。
私のスキルアップの目的・方向はあくまでも「趣味的に」です。本業は機械の技術職なのです。部門内でコンピュータ管理を兼任させられてまして、システム部門と自部門の橋渡しなどをしています。コンピュータのことが分かっていると何かと便利なので、趣味と実益を兼ねて資格取得を行っています。現在まで第2種情報処理技術者(旧名称)・初級シスアドを取得しています。なのでコンパイラ・インタプリタの違いは理解できました。
実務でやっているわけではないので、プログラミングの技術は皆無です。自分のHPに自分で組んだCGIを載せる、最初の目標はこの辺りでしょうか。余りにも大雑把なイメージだと思いますがお分かり頂けたでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBプログラムをEXCEL VBAに移植...
-
ニンテンドーDS用、自作プロ...
-
API、OCX、DLLって何でしょう?
-
C言語のHP-UXからLinuxへのポ...
-
applescriptで自動保存-inDesign
-
C言語プログラミング 逆行列を...
-
VB.net エラーメッセージを英文...
-
変数の大きさを超える代入
-
プログラム解析について
-
APIについてプログラム初心者が...
-
プログラミング言語の覚え方習得法
-
1年無職の彼氏 別れるべきですか?
-
6~7割の正解で、なぜ合格?
-
全豊田作業責任者
-
theadはあまり使わないものです...
-
機械工学専攻の院卒でSEになる...
-
ExcelとWordの検定の資格について
-
ホームページアドレスのWWW
-
F1エンジニアとF1メカニック
-
相続支援コンサルタントとは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
コンソールアプリでファイル選...
-
VBプログラムをEXCEL VBAに移植...
-
Ryzen 3700(無印)はWin11に対応...
-
Sleep命令で指定した待機時間が...
-
CoInitializeSecurityが失敗する
-
OSとCPUの関係について
-
三目並べ
-
SNMPトラップ情報をC#.netで作...
-
C言語のHP-UXからLinuxへのポ...
-
バージョンのつけ方
-
ランチャーの作り方について教...
-
VBS:コンピュータ名を取得し、...
-
printf系の書式「w」ってなに?
-
BiilderとD-Show フレームレー...
-
地域と言語のオプションをプロ...
-
VB.net エラーメッセージを英文...
-
UWSCをサーバー上で実行するには?
-
winsockへの疑問
-
プログラム解析について
おすすめ情報