C・C++・C#
- 【緊急】xmlからデータの取得についての質問です。
https://okwave.jp/qa/q10016550.html#answers の続きです。 自然言語処理について勉強しています。 Wikipediaのdumpデータからタイトルと本文を抜き出して処理をしようと思ってます。 xmlの処理について試しているのですが、エラーに見舞われて困っています。 プログラミングはあまり得意ではないです。 [やりたいこと] 1.wikipediaのdumpデータからタイトル(<title>~~~</title>の~~~部分)の取得。 2.同じように本文(<text>~</text>の~部分)の抽出 3.それらを処理するプログラム(こちらはできているのでこのプログラムに合わせて本文の内容を取得し、txtファイルにまとめたものが欲しい) これについてのプログラムを作成してますが難航しています。 ポインタについてはあまり得意ではないのでそこら辺の知識がないので困ってます。 ご助力お願いします。 ソースコードです。 =========================== #include <stdio.h> #include <stdlib.h> #include <string.h> int main (){ int p,start,endt,endp,startp; char pb[5]; char line[BUFSIZ]; FILE *fp = fopen("jawiki-20211220-pages-articles-multistream1.xml", "r"); char title[BUFSIZ]; //FILE *gt=fopen("list_1.txt","r"); FILE *fw = fopen("get_text_c.txt", "w"); if ((NULL == fp)||(NULL== fw )){ printf("aboooooooooooooooooooooooooooot"); abort();//終了、ここがうまくいってない? } while (p = ftell(fp), fgets(line, BUFSIZ, fp)) { if (strstr(line, "<title>")){ pb[0] = p;//タイトルの始点 startp=(int)pb[0];//intに変換 } else if (strstr(line, "</title>")){ pb[3]=p;//タイトルの終点 pb[2]=p-pb[0];//タイトルのバイト数 fprintf(fw, "%zu \t %zu \n", pb[2], pb[3]); //pb2とpb3の観察。 fgets(line,pb[2],pb[0]);//タイトルを取得 printf("%s",line);//表示 fprintf(fw,"%s",line);//書き込み } else if (strstr(line, "</page>")){ pb[1] = p - pb[0]; //fwrite(pb, sizeof(size_t), 2, fw); // ... fprintf(fw, "%zu \t %zu \n", pb[0], pb[1]); //... テキスト形式で観察可能 } } fclose(fw); fclose(fp); } ================== これを実行しましたが、出力されるテキストは空で、すぐに終了しています。(dumpデータが重いので時間はかかるはず。) お願いします。
- 【c言語】ファイルの読み込みエラーについて
自然言語処理について勉強しています。 Wikipediaのdumpデータからタイトルと本文を抜き出して処理をしようと思ってます。 xmlの処理について試しているのですが、エラーに見舞われて困っています。 プログラミングはあまり得意ではないです。 以下にソースコードとエラー部分を貼り付けます。 ご助力お願いします。 ============================ #include <stdlib.h> #include <string.h> int main (){ size_t p; char pb[5]; char line[BUFSIZ]; FILE *fp = fopen("//Wikipediaの分割ファイル//.xml", "r");//xmlファイルのアドレス char title[BUFSIZ]; //FILE *gt=fopen("list_1.txt","r"); FILE *fw = fopen("get_text_c.txt", "w"); if ((NULL == fp)||(NULL== fw )){ printf("aboooooooooooooooooooooooooooot") abort();//終了、ここがうまくいってない? } while (p = ftell(fp), fgets(line, BUFSIZ, fp)) { if (strstr(line, "<title>")){ pb[0] = p;//タイトルの始点 } else if (strstr(line, "</title>")){ pb[3]=p;//タイトルの終点 pb[2]=p-pb[0];//タイトルのバイト数 fprintf(fw, "%zu \t %zu \n", pb[2], pb[3]); //pb2とpb3の観察。 fgets(line,pb2[2],pb[0]);//タイトルを取得 printf("%s",line);//表示 fprintf(fw,"%s",line);//書き込み } else if (strstr(line, "</page>")) { pb[1] = p - pb[0]; //fwrite(pb, sizeof(size_t), 2, fw); // ... fprintf(fw, "%zu \t %zu \n", pb[0], pb[1]); //... テキスト形式で観察可能 } } } fclose(fw); fclose(fp); } エラー(ファイル名は get_うぃき.c としてます。) =========================== get_うぃき.c:10:16: warning: declaration of built-in function 'fopen' requires inclusion of the header <stdio.h> [-Wbuiltin-requires-header] get_うぃき.c:11:16: error: use of undeclared identifier 'BUFSIZ' char title[BUFSIZ]; ^ get_うぃき.c:14:5: error: use of undeclared identifier 'FILE' FILE *fw = fopen("get_text_c.txt", "w"); ^ get_うぃき.c:14:11: error: use of undeclared identifier 'fw' FILE *fw = fopen("get_text_c.txt", "w"); ^ get_うぃき.c:15:18: error: use of undeclared identifier 'fp' if ((NULL == fp)||(NULL== fw )){ ^ get_うぃき.c:15:31: error: use of undeclared identifier 'fw' if ((NULL == fp)||(NULL== fw )){ ^ get_うぃき.c:16:13: warning: treating Unicode character <U+FF08> as identifier character rather than as '(' symbol [-Wunicode-homoglyph] printf("aboooooooooooooooooooooooooooot") ^~ get_うぃき.c:16:7: error: use of undeclared identifier 'printf(' printf("aboooooooooooooooooooooooooooot") ^ get_うぃき.c:16:49: warning: treating Unicode character <U+FF09> as identifier character rather than as ')' symbol [-Wunicode-homoglyph] printf("aboooooooooooooooooooooooooooot") ^~ get_うぃき.c:20:16: error: implicit declaration of function 'ftell' is invalid in C99 [-Werror,-Wimplicit-function-declaration] while (p = ftell(fp), fgets(line, BUFSIZ, fp)) { ^ get_うぃき.c:20:27: error: implicit declaration of function 'fgets' is invalid in C99 [-Werror,-Wimplicit-function-declaration] while (p = ftell(fp), fgets(line, BUFSIZ, fp)) { ^ get_うぃき.c:20:39: error: use of undeclared identifier 'BUFSIZ' while (p = ftell(fp), fgets(line, BUFSIZ, fp)) { ^ get_うぃき.c:20:47: error: use of undeclared identifier 'fp' while (p = ftell(fp), fgets(line, BUFSIZ, fp)) { ^ get_うぃき.c:20:12: error: use of undeclared identifier 'p' while (p = ftell(fp), fgets(line, BUFSIZ, fp)) { ^ get_うぃき.c:20:22: error: use of undeclared identifier 'fp' while (p = ftell(fp), fgets(line, BUFSIZ, fp)) { ^ get_うぃき.c:22:15: error: use of undeclared identifier 'p' pb[0] = p;//タイトルの始点 ^ get_うぃき.c:25:7: warning: treating Unicode character as whitespace [-Wunicode-whitespace] pb[3]=p;//タイトルの終点 ^~ get_うぃき.c:26:6: warning: treating Unicode character as whitespace [-Wunicode-whitespace] pb[2]=p-pb[0];//タイトルのバイト数 ^~ get_tokuhisa.c:25:16: error
- Turbo Debuggerはどこにありますか?
今年で56歳になるシステムエンジニアです。 Borland C++ 5.5.1 の開発環境を約20年ぶりに構築しようとしているのですが、 フリーの Turbo Debugger がどうしても見つけることができません。 2016年頃までは下記でダウンロードできたようですが、2022/ 6/ 5現在、ダウン ロードできません。 https://www.embarcadero.com/jp/free-tools/ccompiler/free-download Borland C++ 5.5.1 については今でも下記からはダウンロードできるようで、 bccdev と bccform を使って開発環境を作りました。 https://www.mlab.im.dendai.ac.jp/ic2/webdesign/web/tool/bcc/ http://jykim.pr.tsuruoka-nct.ac.jp/Ccompilerandeditor.html 最新の Visual Studio は重くて個人が趣味でプログラムを作るにはオーバー スペックのように感じています。 また、約20年前に Borland C++ 5.5.1 で趣味でプログラムを作っていたため、 慣れている Borland C++ 5.5.1 を使いたいと考えています。 もし分かる方がいらっしゃれば、どうか教えてください。 よろしくお願いします。
- 本を探しています、昔読んだ画像処理の本です
昔読んだ画像処理の本を探しています。 大学の図書館にあって、研究室で卒論の時に読んで基礎を勉強した本なのですが、今ではタイトルを忘れて検索しても見つけられなくなっています。 自分でも今でも手元に置いておきたい本で定期的に探しているのですが、辿り着けなくなっているので この様な内容の本なのですが、もし分かる方がいらっしゃれば教えてください。 ・C言語の画像処理の本 ・入門書でサンプルコードが付いている 載っていたサンプルコードは記憶にあるものだと以下の物だったはずです ・2値化 ・平滑化 ・輪郭検出 ・ヒストグラムの生成 ・sobelフィルタ ・顔画像認識(書籍の最後のあたりのはず) 他にも画像処理の本はありますが、これが一番欲しいバランスで画像処理の解説を出来ていて、人に薦めたい内容になっていました。 自分もこれ読んで勉強した記憶のある方など、お力をお貸しください。
- ベストアンサー
- m_matsubara
- C・C++・C#
- 回答数1
- コマンドプロント パスをC: 直下にする方法
windows10でコマンドプロントで管理者実行なし管理者実行ありともにパスがC:\Users\に固定されておりC: 直下にすることができません フォーマットで権限の変更をしようとしてもグレーアウトします パスをC: 直下にする方法を教えてください
- ベストアンサー
- nakanakaokwave
- C・C++・C#
- 回答数2
- python で競馬予想ソフトを作りたい。
現在 JRA-VANのデータを使ってVBAで作ったソフトを使っています。 それをpythonの機械学習やAIの機能を一部でも使えないかと考えていす。data発信者 JRA-VANDadelabo はCやVBAを推奨していて今のところパイソンは全く考えていないようです。 わからないのは CやVBAでソフトを作るときには、FormにJV-LinkというJvDataを取得する際にcomというかDLLのようなソフトを張り付けてプログラムを作ります。 はたして、パイソンでJV-Linkが使えのかどうかなんですが、わかる人がいたらぜひ教えてください。お願いします。
- 同じファイル名なのに同じと判定しない
重複データを削除するために、有名どころであるFileManyというフリーソフトを使っているのですが、同じファイル名なのに同じと判定しないことがあります。 エクスプローラーや別の同様なアプリでは同じ名前と判定します。 人の目で見ても当然同じファイル名です。 フォルダ階層も深くないですし、ファイル数も1個で比較してもダメです。 プログラムのコードは知りませんが、普通に考えて、パスからファイル名を抜き出し、if文で比較しているだけだと想像します。 ほぼ正しく動くのに、例外的に動かないことが(バグ)あると困りますよね。 なぜこんなことが起きてしまうのでしょうか?
- 深い階層の処理が正しく行われないのはなぜ
フリーソフトで経験したことです。 BunBackup、Everything、FileManyや空フォルダ削除アプリなどを実行するとサブフォルダに対して正しく処理できないことがあります。 サブフォルダのファイルがバックアップされていない、サブフォルダの同じファイルを見つけれない、サブフォルダのファイルを検索できないなど何度も経験しました。 正しく処理できなかったサブフォルダに対して、直接そのフォルダを処理フォルダとして指示した場合には、正しく動きます。 なぜ、このようなことが起きるのでしょうか? このようなことが普通に起きるのであれば、自分で作ったプログラムも正しく動いているのか不安でしょうがありません。 私の操作ミスかなとも思うのですが、何十年もPCと付き合ってきて、そうそう間違いを犯しているとも思えないのですが、お分かりの方、回答お願いいたします。
- マイコンで経過時間のカウント
マイコンで所定時間経過したかどうかを判断するとき、 下記の2パターンがあると思います。 例えば、マイコンで有名なR社さんのマイコンセミナーでは②で説明していました。 私は②に慣れています。 お互いのメリットデメリットを教えてください。 また、どちらがおすすめなのでしょうか? ①開始時間time1と現時間time2との差分で経過時間を判断する方法。 例えば、arduinoとかでのmills()関数を使用した方法。 time1 = mills(); /*何らかの処理*/ time2 = mills(); time_diff = time2 -time1; /*経過時間*/ ②ある変数timerを1秒ごとに減算して0になったかで判断する 例えば、1秒割込みで if(timer > 0){ timer--; } を実施し、 その後、 if(timer == 0){ で比較する。
- MQLの勉強しているのですがエラーが出ます②
int aaa = ; void OnTick() { if((aaa < 10 ||aa.20) && aaa<30) { Print("aaa=0~9 or aaa=21~29 aaa=".aaa); } else if(aaa >=10 && <- 20) { Print("aaa=10~20 aaa=",aaa); } else { Print("aaa=30 aaa=".aaa); } aaa++; } たったこれだけのコードですが今度はエラーが10コでてきます。 でも今度は理由がなんとなく判ります。 0~9のプログラム上の表示の仕方が間違っているのだと 思います。 しかしどこを押せばいいか判らないのです??
- ベストアンサー
- Alico_dego
- C・C++・C#
- 回答数3
- MQLの勉強しているのですがエラーが出ます?
int aaa=o; void OnTick() { if( aaa>10) { aaa = o; } Print("aaa=",aaa); aaa=aaa+1; } たったこれだけの短い練習コードなのですがエラーが出ます? ;や{}もチェックしたのですが何がおかしいでしょうか? 参考文献 https://jidoubaibai.com/kouza/nyumon/part3/
- ベストアンサー
- Alico_dego
- C・C++・C#
- 回答数1
- XML ドキュメントでエラーが発生 対処方法は?
言語C# ネットで付箋紙の作り方を紹介していたので、コピペして作っているのですが、以下のエラーがでます。 (参考にしているサイトttp://pineplanter.moo.jp/non-it-salaryman/2017/07/07/sticky3-by-csharp/) 以下情報だけで分かるのかもわからないのですが、対処方法をご存じの方、お教えください。 ■エラーが出る位置 private void getData() { FileStream file = new FileStream("sticky.xml", FileMode.Open); XmlSerializer serializer = new XmlSerializer(typeof(StickyList)); list = (StickyList)serializer.Deserialize(file); ←ここでエラー file.Close(); } ■エラー内容 System.InvalidOperationException XML ドキュメント (4,11) でエラーが発生しました。 内部例外 指定されたエンコードに無効な文字があります。 行 4、位置 11。 ■"sticky.xml"の内容 <?xml version="1.0" encoding="utf-8"?> <Stickys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Sticky> <text>テスト付箋紙</text> <width>300</width> <height>150</height> <top>200</top> <left>200</left> <red>255</red> <green>200</green> <blue>200</blue> <font-family>Meiryo UI</font-family> <font-size>14</font-size> </Sticky> </Stickys>
- C# Taskの複数実行について
画像のように、Taskを2つ実行したいのですが、 「CS0161:値を返さないコードパスがあります」と出てきます。 そこで下のメソッド(new Program~部分)2つにreturnを付けようとしましたが、今度は2つめのreturnに「到達できないコードが検出された」という旨のメッセージが表示され、複数のTaskが実行できません。 どうすれば、Taskを複数実行できるのでしょうか? 環境はVisual Studio 2022、.net6.0です。
- 締切済み
- noname#251083
- C・C++・C#
- 回答数1
- System.Environment.~のコードは
C# cドライブにあるお気に入りフォルダのパスを取得するコードを書こうとしたら、なんと便利な関数が用意されてるじゃないですか。 System.Environment.GetFolderPath(Environment.SpecialFolder.Favorites)); この関数の中身(コード)を見ようとしたら、どこかで見ることが出来るのでしょうか?
- C# 使用されたパラメーターが有効では~の対策は?
C#の勉強を始めました。 ネットでコードを見つけては参考にさせていただいています。 以下のコードでエラーが出るのですが、解決策をお教えください。 Bitmap bitmap = new Bitmap(fName); ← ここでエラー エラー内容 ユーザーが処理していない例外 System.ArgumentException:使用されたパラメーターが有効ではありません /////////////////////////////// namespace WindowsFormsApp21 { public partial class Form1 : Form { private void listView1_DragEnter(object sender, DragEventArgs e) { e.Effect = DragDropEffects.All; } private void listView1_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { string[] drags = (string[])e.Data.GetData(DataFormats.FileDrop); foreach (string d in drags) { ・ ・ ・ string[] ar = new string[] { }; foreach (string fName in System.IO.Directory.GetFiles(d)) { ar = fName.Split('.'); if (ar.Length > 1) { string str = ar[ar.Length - 1]; if (str.ToUpper().Equals("JPG")) { Bitmap bitmap = new Bitmap(fName); ← ここでエラー int[] pils = bitmap.PropertyIdList; int index = Array.IndexOf(pils, 0x9003); //撮影日付 if (index == -1) { MessageBox.Show("no date in " + fName); continue; } PropertyItem pi = bitmap.PropertyItems[index]; string date = Encoding.ASCII.GetString(pi.Value, 0, 19); date = date.Replace(':', '-').Replace(' ', '_'); string newName = date + ".jpg"; bitmap.Dispose(); ・ ・ ・ } } } } e.Effect = DragDropEffects.Copy; } } }
- visual studio 2022が動かない
visual studio 2022にて これまでは普通に動いていたのですが、〇〇パッケージは正しく読み込まれませんでした。というエラーが出て動かなくなってしまいました。 インストーラーでアンインストールや再度のインストールを何度行っても、同じエラーばかり出て動きません。 パソコンのシステムの復元で動いていたころに戻してもダメです。 対処方法ありますでしょうか?
- C# 100万回に1回のエラーが発生するって?
C#の勉強を始めたばかりで、疑問ばかりで質問しています。 C#に限らないと思いますが、作ったプログラムが正しく機能するかテストすると、100万回に1回発生するエラーがあるといった記述をネットで見ました。 本当ですか? プログラムは常に正しく動くものじゃないのですか?
- C#の#はネットで検索できないの?
C#の勉強を始めたばかりです。 当然ネットで調べまくることになります。 ところが#という文字は検索できないと書かれていました。 しかたなくシャープという文字で検索しています。 #という文字は、本当に検索できないの? そうだとしたら、天下のマイクロソフトがなぜ検索できない名前を付けた?
- C# 有効ではないスレッド間の操作の例外設定
C#始めたばかりです。 有効ではないスレッド間の操作~で悩まされています。 例外設定の中に、 ”次からスローされた場合を除く:” にチェックすることが出来るようになっていますが、ここのチェックを入れれば中断することがなくなるのでしょうか? やってみれば分かるよと言われそうですが、知らない人がやっておかしなことになり、元に戻せなくなると困るので、まずは知識としてお教えください。お願いいたします。