dポイントプレゼントキャンペーン実施中!

パソコン初心者です。暇なので競馬予想ソフトを作ろうと思っているんですが、どの言語でどんなソフトが作れるのかおしてください。例えばR言語は統計ソフトがつくれる。みたいな感じで回答してほしいです。

追記
どんなソフトを作れるのかわからないので検討中なのですが、レースの詳しい情報などを入力し、検索ボタン押すと過去のデータに基づいて、荒れる可能性は何%、荒れない可能性は何%、入力した情報と一致する過去のレース一覧がでてくる。新情報入力すればは過去のデータに簡単に追加できる。みたいな感じのソフトをつくってみたいです。

質問者からの補足コメント

  • どう思う?

    後補足で追記に書いたようなソフトに適した言語を教えてください。パソコン初心者なのでどの言語も難しいと思います。なので難しさは考慮せず、追記に書いたようなソフトに特化している言語をお願いします。

      補足日時:2016/11/09 01:59

A 回答 (10件)

#6のお礼の返事です。



>なかにはわからない単語があり、基礎から勉強しないとなあと実感しました。
単語自体は、そんなに覚える必要はありません。こちらが適当につけているものもありますから。

最近、10年ぶりぐらいに手を付けた、できないと諦めていたコードがありましたが、それが、なんとかできるようになっていました。そこで思ったのは、できると信じれば、できる、ということでした。単語とかそういうものは、やっていれば覚えるけれども、構文のパターンだけは、覚えないといけないということです。だいたい3つぐらいあります。

それよりも、やっていて楽しいかどうかが大事です。私も、最初は、長いテキストを切り出す事から始まって、DOMで抜き出す方法を次第に覚えました。私が書いたのが、VBAというもので、特に、Excel VBAの便利さは、すぐに出力の方式を変更できることかなって思います。

VBAで、ちゃんとした目的を以ってやれば、だいたい3ヶ月もすれば、飲み込みの早い人は、使えるようになっています。
    • good
    • 0
この回答へのお礼

ありがとうございます。がんばってみます!

お礼日時:2016/11/11 02:23

#6であげたコードをIE起動から書き直してみました。


Excel のほとんどのバージョンで動くはずです。

標準モジュール等に貼り付けて実行すれば、その部分だけは取れるはずですが、内容的に変更があると、取れなくなってしまいます。

私自身は、#6で書いたようなパーツでの開発がほとんどで、インターネットにアクセスする部分は、すでに作って、取得する部分だけを開発し、組み入れたり、入れ替えたりするようにしています。

#6の「説明がまとまっていないような気がします。」について、順序が逆になってわかりづらいものになってしまいましたが、http://www.vba-ie.net/element/dom.html のサイトのことでして、ここのサイトは、Excel VBAオンリーですが、わかりづらい部分が多いです。VBAの基本的なことさえわかれば、後は、JavaScript サイトで勉強したほうが早いです。

VBAをたしなむ人には、単調なものとは違い、ダイナミズムで刺激的で、開発しながら、開発自体のテクニックをおぼえるという、ためになる部分が多いのですが、初心者ですと、IEとVBAのダブルですから、かなり負荷が大きいです。

なお、私は、競馬等、この手のものは一切分かりません。

'//
Sub GetIEData()
Dim objIE As Object '本来は、事前バインディングのほうが良い
Dim strURL As String
Dim c As Variant
Dim i As Long, j As Long
Dim db_h 'ここは型を決めない
strURL = "http://db.netkeiba.com/horse/2013106007/"
Set objIE = CreateObject("InternetExplorer.Application")

objIE.Navigate2 strURL
objIE.Visible = True
Do While objIE.Busy Or objIE.ReadyState <> 4: DoEvents: Loop
 With objIE
  Set db_h = .Document.getElementsByClassName("db_h_race_results nk_tb_common")
   For Each c In db_h(0).Cells
    If c.Cellindex = 0 Then i = 1: j = j + 1
    Cells(j, i).Value = c.innerText
    DoEvents
    i = i + 1
   Next
   Range("A1").CurrentRegion.Columns.AutoFit
   .Quit
  End With
  Set objIE = Nothing
End Sub
    • good
    • 1

あ、それと一つ書き忘れてたんですが。



既存のデータベース(AccessやMySQL)を利用する場合、VBAなんかの「プログラミング言語」とまた別に「クエリ言語」とか言われる、「データベース問い合わせ言語」を覚える必要があります。
SQL(Structured Query Language)と言うヤツなんですが、基本的に今はどのデータベースでも...って言うと語弊があるかな?いや、メジャーなデータベースだと基本的に全てこの「SQL」と言う言語でデータ検索するようになっています。
まあ、覚えると言うか、ハンドブックとか参照用に買っておいた方が良いでしょう。

SQLハンドブック:
https://www.amazon.co.jp/SQLハンドブック-第2版-Technical-Handbook-宮坂/dp/4797326611

基本的に、メジャーな、RDBMS(リレーショナル・データベース・マネージメント・システム、つまりAccessやMySQL等のデータベースソフトウェア)は全てこのSQLを介してデータ操作するんですが(しかしながら完全互換とは行かない辺りがクセモノ・笑)、この他に各ソフト独自の「プロシージャ」(操作手続き)ってのがあって、それで使い勝手に差が出たりするんですね。
まあ、プロシージャ自体は、例えばAccess買ったとしたらそのマニュアルなり、解説本を読むなりして欲しいんですが、いずれにせよ、プログラム組む上でもSQLとも格闘しなければならないとは思います。
    • good
    • 1
この回答へのお礼

下のno9はみすです。

お礼日時:2016/11/10 21:00

> ターゲットフロンティア


> http://jra-van.jp/pr/1612/
> これもエクセルつかっているのでvbaを勉強すればうまくこのデータを活用できますかね??

ターゲットはデータ競馬やってる人達には有名なソフトなんですが、これはエクセル製ではないです。
オリジナルはかなり古いんですが(確かNEC PC-9801のソフトだった?)、いずれにせよ、(確か)C言語で書かれた「独自仕様の」データベースソフトです。
検索するには凄く優秀なソフトウェアですが、一方、基本的に「外部とのやり取り」には向いてません。
単にエクセル形式でのファイルを出力可能、なだけなんじゃないでしょうか。
要するに、基本的にこれは「競馬予想をする」為のソフトウェアではありません。

> データをどのようにソフト組み込むかなどわかっていない

基本的にはJRA-VANから提供されているJV-Linkと言うソフト(と言うかライブラリ)を使います。
(JRAで紹介されてる競馬ソフトは全てこれを経由してJRA-VANのデータを取得します)

JV-Linkのインストール:
http://jra-van.jp/dlb/sft/jv.html

そして、JRA-VANの方から開発キット(基本ライブラリ集)が提供されているので、それを利用してプログラムを組んでいきます。

詳しい話は次のページに記述があります。

競馬ソフト開発体験教室:
http://jra-van.jp/dlb/sdv/trial.html

また、具体的なプログラミングに関する質問は、ここより、JRA-VANに訊いた方が良いでしょうね。


プログラミング質問広場:
http://forum.jra-van.ne.jp/cgi-bin/datalab/bbspr …

なお、既にあるソフトを利用して・・・と言う手も無いことはないでしょう。
いくつか紹介しておきます。

馬王:
http://jra-van.jp/dlb/sft/lib/baou.html

Accessを利用してVBAで組み上げられてるソフトです。
ベースがAccessなんで、恐らく統計言語Rなんかから接続してデータ解析なんかは可能だと思います。

EveryDB2:
http://jra-van.jp/dlb/sft/lib/everydb.html

これは「かなりの種類のデータベースソフト」にJV-Linkから読み込んだデータを「流しこむ」ソフトで、ある意味、実は一番「今の目的に合ってる」ソフトかもしれません。
例えば、Googleが使用してる(と言うか使用してた?今はMariaDB)のでお馴染みのMySQLなんかも使えるんで、データさえ取り込んでしまえば、それこそ統計言語Rを接続すれば自在な分析も可能になるでしょう。

PC-KEIBA Database for JRA-VAN Data Lab.:
http://jra-van.jp/dlb/sft/lib/pckeibadb.html

これも上のEveryDBに近いソフトですね。

つくれます Access版 for JVDL:
http://jra-van.jp/dlb/sft/lib/tukuremasuaccess.h …

これもデータベースに「流しこむ」ソフトですが、Access限定で、逆に言うと、これを使いながらAccessでVBAで組む、と言うのもアリでしょうね。

とまぁ、最初は「他人が作った」ソフトを利用して、自分のしたい事へと「カスタマイズ」していくのも一つの手でしょうね。
    • good
    • 1
この回答へのお礼

詳しくありがとうございました。no9
JRA-VANは有料会員がひつようなので、とりあえずSQL、vba、c言語を勉強し、もうちょいやりたいことを明確にしたほうがよさそうですかね

お礼日時:2016/11/10 20:59

#2の私からのアドバイス



なぜ、JRA-VANかというと、スクレイピングとかなんとか言われても、ぜんぜん、ここ何年もずっと内容を変える様子がないから、安定のWebサイトです。
しかも、その仕組が変わっています。パスワードはあるのですが、サイトの中にある、パスワードを拾って開けろというようになっています。最初、さっぱり、仕組みが分からなかったです。

改編は、ヤフオクみたいなところは、3ヶ月に1度ぐらいは変わっているので、追いつかないこともあります。「教えて!goo」は、ここの所、ぜんぜん変更していませんが、カテゴリコードが最近変わって、大混乱で、まだ余波が残っています。

http://jra-van.jp/pr/1612/
これって、データベースソフトですよね。

VBAの使い方は、かなり違う感じがすると思います。VBA入門とかいう本を買ってきても手が付きません。

#2で紹介した、吉田章太郎さんのJRAをベースに、今工事中のExcelVBA講座がありますが、コードがいささかというか、かなり古臭いままでした。[Excelを使った競馬プログラミング]

私など、一部のVBAの使い手は、いずれ、VBAは終わってしまうことは、ひしひしと感じながら使っていますから、特に、古臭い書き方は、手がつけようがないほど、移植性が低くなります。

それと、一から開発の時に、最後の最後にはFireFox のアドオンのBugFireが助けられることがありますが、普段、IEで十分です。

スレを読んでいて気になったけれども、今は、テキストデータから取り出すようなことはしません。この手の競馬などのサイトは、Tableを出してくれているので、それを元に取り出します。

このように、DOMを調べて抜き出します。
以下は、そのままでは、使えませんが、簡単な例を示しますと、このようなVBAのコードで取得します。

'//ヴィブロスの競走成績//
With objIE
  Dim oEv, n, ev, i, j
  Set oEv = .Document.getElementsByClassName("even")
   If oEv.Length = 0 Then MsgBox "データが取れません。", vbExclamation: Exit Sub
   i = 1
   For j = 1 To oEv.Length
    For Each n In oEv(j - 1).ChildNodes
     If TypeName(n) = "HTMLTableCell" Then
      Cells(j, i).Value = n.innerText
      DoEvents
      i = i + 1
     End If
    Next n
    i = 1
   Next j

参考サイト:
説明がまとまっていないような気がします。
ちなみに、私は、ここで覚えたわけではありません。
http://www.vba-ie.net/element/dom.html
    • good
    • 1
この回答へのお礼

詳しくありがとうございます!No.9も読みました。なかにはわからない単語があり、基礎から勉強しないとなあと実感しました。基礎の専門用語などはなんの科目?を勉強すればわかるようになりますかね。よかったら教えてください

お礼日時:2016/11/10 20:38

> JRA-VANがよさそうなので、JRA-VANにしてみます。



何度も繰り返しますが、恐らくそれが一番無難でしょう。

> HTMLのことも調べてみました。かなり時間かかりそうですね。

ですね。
ちなみに、HTMLと言うのは、ザックリ言うと、Webブラウザ(Microsoft Internet ExplorerやAzure、Firefox、Google Chrome等)でページを見る際に「どうやって表示するか」と言う約束事(マークアップ言語)です。ここに準拠してれば、基本的にどのWebブラウザで見ても「理論的には」同じようにページが表示されます。
当然この「教えて!goo」もHTMLで記述されています。

例えば、netkeiba.comだと、今週のエリザベス女王杯の出走予定馬のヴィブロスと言う馬のデータは次のようになっていますね。

ヴィブロス :
http://db.netkeiba.com/horse/2013106007/

んで、「人間が見れば一発で分かる」ページ構成になってますが、生憎だからと言ってコンピュータに優しい、たぁ限らない。
どのブラウザか知りませんが、恐らく右クリックで「ページのソースを表示」と言う選択肢が出てくると思うんで、それを実行すれば「HTMLとしてどう記述されてるのか」分かると思います。
多分1300行余りのテキストデータとして見れると思いますが、それがHTMLです。
んで、恐らく525行辺りかな?

<div class="cate_bar">
<h2>ヴィブロスの競走成績</h2>
<div class="sp_info_box_01 fc">

とか書いててガーッと過去の競走成績が出てくるんですが、この例の場合、ソフトで1300行中525行目を探し当て、過去の競走成績をデータとして「抜き書き」していかないとなりません。
また、Webページなんで、広告が入ってたり、要らない情報が要するに存在してて、どれが大事な情報なのか、ソフトウェアが決められるようにしないといけないんですね。
これはかなり厄介です。
JRA-VANやKOLは「コンピュータで分かりやすい」データ設計をしてるんで読み込みとかは仕様に従えば大丈夫ですが、Webページ相手だとそれがそうもいかないんですよね。

また、今は日本だと主にHTML4(この4はヴァージョン番号)が用いられてますが、もうHTML5が諸外国だと使われ始めています。HTML5が優勢になったらどうなるのか・・・?
別にHTMLに限らないんですが、要するに「仕様変更」が起きた場合どうなるのか、と言うのも明快ではないのです。
平たく言うと、仮に、netkeiba.comが

「ページデザインを変えました!以前より見やすくなりましたよ!」

等として、人間は見やすくなっても「コンピュータで処理する」場合、これが困ったちゃんなんですね。HTMLからデータを抜き書きしてるプログラムを全部変更しなければならなくなる、なんてのも「充分あり得る」話になるわけです。

と言うわけで、一見タダで良さそうなんですが、このテの「ページからデータを抜き出す」ようなプログラムの場合、Webプログラミングに精通してないとかなり厄介なんです。

(実は同様の理由で、JRAが提供してるi-PATでの自動投票機能は滅茶苦茶実装が難しい、と言われています)
    • good
    • 0
この回答へのお礼

詳しくありがとうございます。テキストデータ?も見てみました。HTMLは広告やらで思った以上に厄介ですね。いらない情報を抜くにしても初心者なので時間がかかり、それを何ページもやるとなるとかなり・・・・非現実的なきがしてきました。
大まかのことはわかって気がしてきましたが、まだ細かいことがわかっておらず・・データをどのようにソフト組み込むかなどわかっていないのですが、vbaを勉強すればわかってきますかね?

ターゲットフロンティア
http://jra-van.jp/pr/1612/
これもエクセルつかっているのでvbaを勉強すればうまくこのデータを活用できますかね??

お礼日時:2016/11/10 11:51

> VBAは言語?らしいので図書館とかで調べてみます。



そうです、プログラミング言語です。
VBA(Visual Basic for Application)はVB(Visual Basic)の亜種で、Word、ExcelやAccess用に作られたマクロ(拡張機能。さまざまな動作を纏めて記述出来る)ですが、Visual Basicを基にしています。
マクロでもこー言った事



やるような人が出る位なんで、それなりに強力です。

> どのサービスを利用するのかっていうのソフト開発する上でのデータ(競馬の情報)のことですか?

その通りです。
先ほども書いた通り、大まかにはJRA-VANとKOLの2つがネットでの競馬情報の配信サービスになっています。
まあ、中には、Webプログラミングの知識とかある人だと、例えばnetkeiba.com

netkeiba.com:
http://db.netkeiba.com

のHTMLからデータを抜き出して・・・とかもトライしてるみたいですが、まあ、フツーはやっぱりJRA-VANかないしはKOLから正規にデータを買う、と言うのが一番簡単になるんじゃないでしょうか。
    • good
    • 1
この回答へのお礼

なるほど詳しくありがとうございます。なんとなくわかってきました。最初の回答の意図ちゃんとわかっておらず、見当違いな返信をしてしまい申し訳ないです。JRA-VANがよさそうなので、JRA-VANにしてみます。

 動画拝見しました。エクセルでこんなこともできるんですね!

HTMLのことも調べてみました。かなり時間かかりそうですね。netkeiba.comは無料なのでHTMLも視野に入れてみたい思います。

お礼日時:2016/11/10 03:37

> 回答ありがとうございます。

jar-vanみたいながちがちなやつではなくもう少し簡易的なをつくれればいかなっと思っていました

とは言っても、

> 検索ボタン押すと過去のデータに基づいて

と書いてる以上、手作業で過去データを入力するのは物凄い大変ですよ。
ヘタすればプログラム作るよりデータ入力の方が遥かに時間が取られます。

近似のサービスとしては、NECインターチャネルと競馬ブックが行っている

KOL:
http://www.keibado.ne.jp

と言うのがありますが、ランニングコストから言うと、やっぱJRA-VANの方が「安い」って事になって、結局、そっちになっちゃうんじゃないでしょうか。
いずれにせよ、「どのサービスを利用するのか」と言うのを先に決めないと、競馬ソフト関係のプログラミングは暗礁に乗り上げちゃうでしょう。

あと、 #2 の方が挙げている書籍

DIY競馬プログラミング:
http://amazon.co.jp/dp/490167675X

と言うのは、昔のメール配信サービス時代のJRA-VANのデータを用いる、と言う書籍で、現行のJRA-VANには基本的には対応していません。
また、出版社自体が潰れちゃってるんで、その本を買うのもなかなか難しくなってるんじゃないでしょうか。
(まあ、古本で入手も可能でしょうが)

結局、

> 検索ボタン押すと過去のデータに基づいて

となると、データベースに入れる、って事が避けられなくなるんで、MicrosoftのAccess辺りを購入してVBA(Visual Basic for Application)で組むってのが現実的でしょうね。
あるいは、古いVB(Visual Basic 6)だけどJRAがソースを公開している

馬吉:
http://jra-van.jp/dlb/sdv/pgm.html

と言うのがあって、それを改造する、なんてのがラクかもしれません。

いずれにせよ、MicrosoftのAccess等を買って、付属のVBAを利用する、ってのが一番簡単で手っ取り早いでしょうね。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。MicrosoftのAccess調べてみたのですが、かなりよさそうです!VBAは言語?らしいので図書館とかで調べてみます。
どのサービスを利用するのかっていうのソフト開発する上でのデータ(競馬の情報)のことですか?お門違いの質問だったら申し訳ないです。

お礼日時:2016/11/10 00:03

こんにちは。



ご自分で、最初からやったら、かなり時間が掛かるでしようね。

吉田章太郎さんという方が、『DIY競馬プログラミング』という本を出したのですが、皆さん、挫折したそうです。(甘い期待があったからだと思います)
http://amazon.co.jp/dp/490167675X

私は、中身は、だいたい想像つきましたが、当時のものはたぶん呪文のような書き方だったはずです。古いテクニックで勉強にはなりません。その後、この世界も変わったわけで、それで内容を一新させたようです。
http://www.yannies.com/diy/index.htm
[Excelを使った競馬プログラミング]

この方は、もともとは、VB系のプログラマーだったそうです。
Excelのレベルからすると、上級になります。ExcelのVBAを使うということです。

それと、ネットでは有名になった、Yu-Tangさんは、Accessで作られていましたが、こちらの吉田さんは、別のデータベースを使うようです。Yu-Tangさんは、一部の人たちに、クローニングやスクレイピングのブームを作ってしまいました。

私は、競馬が分かりさえすればと思いつつも、WebスクレイピングにYu-Tangさんがご紹介していただいたので、とても興味が湧き、ずっと開発は続けていますが、肝心の、分析とかは仕組みが分からないもので、先に進みません。

でも、競馬をやるやらない関係なく、一旦、この世界に踏み入れたら、やめられないという感じがします。それは、自分の上達が感じ取れるからです。私には、それだけでも十分お釣りがきます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2016/11/09 12:48

うーん、JRA-VANですよね?


このページ

http://jra-van.jp/dlb/sdv/trial.html

見る限り、そんなに「適した言語」選ぶ程選択肢が無いと思うんですが・・・。

*Borland C++Builder 6
*Borland Delphi 7
*Microsoft VisualBasic 6
*Microsoft Visual Basic 2008 Express Edition
*Microsoft VisualC++ 6
*Microsoft VisualC++ .NET

しかも、会社も指定されてる、つまり処理系の選択の幅がそもそもないですね。
(その上、現行で売ってるかどうか定かではなかったりします・笑)
多分これら以外はサポート対象外でしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。jar-vanみたいながちがちなやつではなくもう少し簡易的なをつくれればいかなっと思っていました

お礼日時:2016/11/09 12:47

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