☆☆☆ merrybelleの掲示板 ☆☆☆

皆さん、お気軽に書き込んでください。

前ページ


urlエンコードデコード  投稿者:マルちゃん  投稿日:2022年7月28日(木)14時45分25秒 [131]
STORE substrutf(string01,10,3,string02) TO string02
でstring02を定義してるからであって
utf_to_shift の動作は問題ないのですね?

確認できました。早とちりしてすみませんでした
<m(__)m>

 投稿者:  投稿日:2022年7月26日(火)20時06分52秒 [130]
書き込み[122]で
検索のキーワードをそのまま設定し
urlエンコードはブラウザにまかせましたが

たとえば"cからc#のdllを呼ぶ"を検索するときに

run "C:\Program Files\Mozilla Firefox\firefox.exe";
 https://www.google.co.jp/search?q=cからc#のdllを呼ぶ

とすると"#"がurlに使えない文字なのでうまくいきません

そこで"#"などだけをurlエンコードするurlencodeasc()をつくりました

上記の例では

EXTERN CDECL CSTRING urlencodeasc(CSTRING,CSTRING) encode001.dll
store urlencodeasc('cからc#のdllを呼ぶ',space(100)) to str01
run "C:\Program Files\Mozilla Firefox\firefox.exe";
 https://www.google.co.jp/search?q=&str01

とするといいようです



 投稿者:  投稿日:2022年7月26日(火)20時03分24秒 [129]
http://merrybelle.sub.jp/merrybelleの
urlエンコードデコードのところでは

元の文字列"12345abcde日本語"(shift_jis)
をいろいろに変換しています

STORE '12345abcde日本語' TO string01
STORE SPACE(1000) TO string02(バッファ)
STORE shift_to_utf(string01,string02) TO string02
でutf-8に変換し
STORE string02 TO string01
STORE SPACE(1000) TO string02(バッファ)
STORE substrutf(string01,10,3,string02) TO string02
でsrting01(utf-8)の10文字目から3文字抜き出します
1バイト文字の"e"と3バイト文字の"日本"とで
計3文字"e日本"(utf-8)が抜き出されます
STORE string02 TO string01
STORE SPACE(1000) TO string02(バッファ)
STORE utf_to_shift(string01,string02) TO string02
でshift_jisに変換し
? string02
で"e日本"(shift_jis)が表示されます



urlエンコードデコード  投稿者:マルちゃん  投稿日:2022年7月26日(火)16時49分40秒 [128]
言葉足らずですみません
string2の値がおかしいのではないでしょうか?

urlエンコードデコード  投稿者:マルちゃん  投稿日:2022年7月26日(火)16時35分49秒 [127]
いつも質問ばかりですみません。
urlエンコードデコードのサンプルソースで最後3行

? '<shiftjisに変換>'
? string02
? '文字数'+str(LEN(string02))

表示が 「日本語」にならず「e日本」になるのですが・・・・

DEFINE WEB BROWSE  投稿者:マルちゃん  投稿日:2022年6月2日(木)13時39分50秒 [126]
すみません。おっしゃる通りですね。
ただ、現在は社内のサーバーにある、(古い言い方ですがイントラネット)のデータや情報を表示させるのに使っていてIEの終了で対策を悩んでました

DEFINE WEB BROWSE  投稿者:マルちゃん  投稿日:2022年6月2日(木)13時39分33秒 [125]
すみません。おっしゃる通りですね。ただ、現在は社内のサーバーにある、(古い言い方ですがイントラネット)のデータや情報を表示させるのに使っていて
IEの終了で対策を悩んでました

 投稿者:  投稿日:2022年5月28日(土)17時03分41秒 [124]
状況が昔と変わりセキュリティが最優先です
多機能のブラウザをAragoの子ウィンドウに入れるのは危険です
責任を免れません



DEFINE WEB BROWSE  投稿者:マルちゃん  投稿日:2022年5月27日(金)14時34分58秒 [123]
動作を確認いたしました。
これをARAGOWのパネルの中で展開したいのですが
どういう書き方をすればいいのでしょうか?


 投稿者:  投稿日:2022年5月20日(金)09時11分00秒 [122]
書き込み[120]で
検索のキーワードをURLエンコードしていますが
これは間違いでした

検索のキーワードをURLエンコードすると
"merrybelleの掲示板"の検索ではなく
"merrybelle%82%CC%8C%66%8E%A6%94%C2"の検索に
なってしまいます


下記のように検索のキーワードをそのまま設定します

run "C:\Program Files\Mozilla Firefox\firefox.exe";
 https://search.yahoo.co.jp/search?p=merrybelleの掲示板

run "C:\Program Files\Google\Chrome\Application\chrome.exe";
 https://www.google.co.jp/search?q=merrybelleの掲示板



DEFINE WEB BROWSE  投稿者:マルちゃん  投稿日:2022年5月19日(木)11時29分47秒 [121]
アドバイスありがとうございます
早速やってみます

 投稿者:  投稿日:2022年5月17日(火)18時29分36秒 [120]
Yahoo! JAPANのホームページを開くだけであれば
下記でできました

run "C:\Program Files\Mozilla Firefox\firefox.exe" https://www.yahoo.co.jp



EXTERN CDECL CSTRING urlencode(CSTRING,CSTRING) encode001.dll
EXTERN CDECL CINT run01(CSTRING,CINT) encode001.dll

store 'merrybelleの掲示板' to str01
store urlencode(str01,space(100)) to str02

run01('C:\Program Files (x86)\Google\Chrome\Application\chrome.exe;
 https://www.google.co.jp/search?q='+str02,1)
*run01('C:\Program Files\Google\Chrome\Application\chrome.exe;
* https://www.google.co.jp/search?q='+str02,1)




DEFINE WEB BROWSE  投稿者:マルちゃん  投稿日:2022年5月16日(月)13時45分50秒 [119]
すみません エラーというより
下記メッセージがでできて、使用者から、不安の声がでできました

Yahoo! JAPANトップページの機能を正しくご利用いただくには、下記の環境が必要です。
パソコンでご利用のお客様
Windows:Internet Explorer 11.0以上 / Edge 最新版 / Chrome 最新版 / Firefox 最新版 macOS:Safari 11.0以上
※Internet Explorer 11.0以上をご利用の場合は、
「Internet Explorerの互換表示について」を参考に、互換表示の無効化をお試しください。

タブレットでご利用のお客様
iOS 9.0以降、または、Android4.4以降のOSに標準搭載されたブラウザー
※日本国内版として発売されている端末でご利用ください。


IEも6/15で終了とのことで、若干不安になってきたので、掲示板に書かせて頂きました。

 投稿者:  投稿日:2022年5月13日(金)18時52分01秒 [118]
do WEBBROW.PRGは
Internet Explorer 11で動きましたが
どういう誤動作ですか?

Aragoでブラウザの自動操作を行うDLLは作ってないです



お久しぶりです  投稿者:マルちゃん  投稿日:2022年5月13日(金)11時02分35秒 [117]
久しぶりに、参加させていただきます

ARAGOWのPOBJECTにWeb がありますが、WEBBROW.prgにある

DEFINE WEB BROWSE が古いIEの仕様になので、誤動作するようになりました

merrybellさんのDLLで、chromeとかEdgeの仕様で同様のWebを操作する方法はないでしょうか?


 投稿者:  投稿日:2022年2月5日(土)13時48分02秒 [116]
書き込み[76]のstartup1.exeを
管理者権限で実行(ユーザーアカウント制御が無効の状態)に変更しました
プログラミングミスでシステムファイルなどを削除したりしないように
注意が必要です



 投稿者:  投稿日:2021年12月6日(月)13時25分48秒 [115]
私はあまり先が長くない身です
生き物ですので

dBASEは40年くらい前からでした




今後新しい開発はなさそうです。  投稿者:kamitani  投稿日:2021年12月6日(月)08時34分03秒 [114]
いま社員の定年退職などが続いてどんどん事業縮小しています。
私もすでに年金受給者なっております。
今後新しい開発はなさそうです。
>あなた様の余裕があるうちは、引き続きよろしく
といいましたが、もう大丈夫そうです。
長い間お世話になり、ありがとうございました。



まだ実用してなくて・・・  投稿者:kamitani  投稿日:2021年4月17日(土)11時49分54秒 [113]
>excelcli101.dllとexcelcs101.dllでexcelを使うときは
補足情報ありがとうございます。

実は、動作確認の後も、現行プログラムを従来方式のまま使い続けてます。
次回、大改造とは新プログラムを作ることになったときには、ぜひとも利用したいと思ってます。
ですが、その機会がないかもしれません。

先のことは分かりませんので、あなた様の余裕があるうちは、引き続きよろしくお願い致します。


 投稿者:  投稿日:2021年3月30日(火)08時16分20秒 [112]
excelcli101.dllとexcelcs101.dllでexcelを使うときは
opnexcel(1)でexcelを起動したら必ずclsexcel()でexcelを終了しなければなりません
opnexcel(1)でexcelを起動した後prgが中断するなどでclsexcel()が実行されない場合は
excelが起動されたままになります
その場合は
opnexcel(1)で起動しexcelが表示されている場合はそのまま手動でexcelを終了する
opnexcel(0)で起動しexcelが非表示の場合はタスクマネージャーでexcelを終了する


 投稿者:  投稿日:2021年2月7日(日)10時22分45秒 [111]
いまどき
インターネット公開掲示板は不遇で・・
アクセスカウンタの99%以上はスパム投稿です




罫線機能追加できました。  投稿者:kamitani  投稿日:2020年12月21日(月)09時27分44秒 [110]
ソースファイル,DLLファイルとも更新されたんですね。
動作確認できました。


追加情報ありがとうございます。  投稿者:kamitani  投稿日:2020年12月21日(月)08時23分14秒 [109]
お世話になります。
実用はまだ先ですが、研究させていただきます。

 投稿者:  投稿日:2020年12月19日(土)14時24分28秒 [108]
EXTERN CDECL CINT keisen02(CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT) excelcli101.dll
*左上セル(例3,8),右下セル(例8,8),右下がり斜線(0:なし 1:あり),右上がり斜線(0:なし 1:あり),太さ,色(例255,0,0)
*太さ1:xlHairline 2:xlThin 3:xlMedium 4:xlThick


keisen02(6,2,8,2,1,1,4,255,0,255)
keisen02(7,3,8,3,1,0,2,0,255,255)
keisen02(3,8,8,8,0,1,2,0,0,0)





罫線入りました。  投稿者:kamitani  投稿日:2020年12月19日(土)08時10分59秒 [107]
またまた、仕事させてしまいました。
長年やりたかったスタイルで処理できそうです。
どうもありがとうございました。

 投稿者:  投稿日:2020年12月18日(金)22時30分41秒 [106]
*excelkei.prg
*excel.exeを使う
*遅い
*印刷ができる
*動作は
*aragow→excelcli101.dll→excelcs101.dll→excel.exe
*です
*excelcli101.dll
*excelcs101.dll
*の2個のdllをARAGOPRO.EXEのフォルダに置く
*(C#のDLLは"実行ファイルと同じフォルダまたはアセンブリ名のついたサブフォルダに置く")
*エクセルがインストールされている
*************************************************************************
EXTERN CDECL CINT opnexcel(CINT) excelcli101.dll
*excel.exeを開く 0は非表示 1は表示
EXTERN CDECL CINT opnbook(CSTRING) excelcli101.dll
*opnbook('D:\temp\test.xlsx')
*D:\temp\test.xlsxファイルがあれば開くなければ空のファイルを開く
EXTERN CDECL CINT opnsheet(CSTRING) excelcli101.dll
*opnsheet('sheet1')
*sheet1シートがあれば開くなければ空のシートを開く
EXTERN CDECL CINT savebook(CSTRING) excelcli101.dll
*savebook('D:\temp\test.xlsx')
*上書き保存
EXTERN CDECL CINT clssheet(CVOID) excelcli101.dll
*シートを閉じる
EXTERN CDECL CINT clsbook(CVOID) excelcli101.dll
*xlsxファイルを閉じる
EXTERN CDECL CINT clsexcel(CVOID) excelcli101.dll
*excel.exeを閉じる
EXTERN CDECL CINT keisen01(CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,;
CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT) excelcli101.dll
*左上セル(例3,2),右下セル(例8,8),上辺の線種,太さ,色(例255,0,0),下辺の線種,太さ,色(例0,255,0),
*左辺の線種,太さ,色(例0,0,255),右辺の線種,太さ,色(例0,0,0)
*線種 0:罫線なし1:xlContinuous 2:xlDash 3:xlDashDot 4:xlDashDotDot 5:xlDot 6:xlDouble 7:xlSlantDashDot
*太さ(線種によって設定できないものがある)1:xlHairline 2:xlThin 3:xlMedium 4:xlThick
EXTERN CDECL CINT keisen02(CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT,CINT) excelcli101.dll
*左上セル(例3,8),右下セル(例8,8),右下がり斜線(0:なし 1:あり),右上がり斜線(0:なし 1:あり),太さ,色(例255,0,0)
*太さ1:xlHairline 2:xlThin 3:xlMedium 4:xlThick
EXTERN CDECL CINT cellmrg(cint,cint,cint,cint) excelcli101.dll
*************************************************************************
if opnexcel(1)<>0
	? 'エクセルを起動できません'
	return
endi
if opnbook('D:\temp\calendar.xlsx')<>0
	? 'ブックに書き込みできません'
	clsexcel()
	return
endi
if opnsheet('カレンダー')<>0
	? 'シートを開けません'
	clsbook()
	clsexcel()
	return
endi

keisen01(3,2,8,8,7,3,255,0,0,3,3,0,255,0,4,3,0,0,255,6,4,0,0,0)
keisen01(3,3,8,3,7,3,255,0,0,3,3,0,255,0,1,2,0,0,0,1,2,0,0,0)
keisen01(3,7,8,7,7,3,255,0,0,3,3,0,255,0,1,2,0,0,0,1,2,0,0,0)

keisen02(6,2,8,2,1,1,4,255,0,255)
keisen02(7,3,8,3,1,0,2,0,255,255)
keisen02(3,8,8,8,0,1,2,0,0,0)

cellmrg(9,2,10,8)
keisen02(9,2,9,2,1,1,3,0,0,255)

? savebook('D:\temp\calendar.xlsx')
? savebook('D:\temp\calendar.pdf')

clssheet()
clsbook()
clsexcel()




罫線の話  投稿者:kamitani  投稿日:2020年12月18日(金)07時25分48秒 [105]
早々のレス、いつもありがとうございます。

>あらかじめcalendar.xlsxを"罫線入り"で作成してから
承知しております。

>定型文書であれば
定型文書ですが、2種類あるんです。

例えば、月間販売集計であれば、合計表と、販売伝票一覧表です。
合計表の方は、行数も列数も固定なので、あらかじめ罫線入りのテンプレートを用意できますが、
伝票一覧表の方は、毎月行数が増減します。
なので、一行書き込むごとに、同時に罫線を追加したいのです。罫線入りテンプレートを用意できないのです。

そういう処理は、すでに数年前からExcelCreatorというソフトで、ARAGOWからEXEプログラムを起動するスタイルでやってます。
今回の話が実現できなくても、とくに困ることはありません。

最近、ExcelCreatorの新バージョンでC#が使えることが分かりました。
ExcelCreatorは機能があり過ぎでややこしいです。
シンプルな手段を模索してる訳です。

昔どなたかに、ExcelCreatorのことで個人的に相談したことありましたが、もしかして、あなたではありませんか。
当方、長年同じようなことやってます。

 投稿者:  投稿日:2020年12月17日(木)16時30分00秒 [104]
以前に
aragowのプログラムで
白紙の状態から文書をつくるというのが
あったようですが

定型文書であれば
オーバーレイ印刷というのが
私のこだわりで・・


calendar3.prgの例で
あらかじめcalendar.xlsxを"罫線入り"で作成してから
calendar3.prgを実行すると
セルに文字が書き込まれます

Excelの定形文書であれば
文書のフォームをExcelで作成(罫線も含めて)し
xlsxファイルで保存して
そのxlsxファイルを読み込んで
オーバーレイ印刷のように
aragowで文字を書き込むことができます

overlayprn.prgの例では
文書のフォームをWordなどで作成し
pdfファイルで保存し
そのpdfファイルをPDFCreatorなどでjpegファイルで保存して
あるいは
定型文書をスキャンしてjpegファイルで保存して
そこへ文字などをオーバーレイ印刷します





「excel.exeを使う」プログラム  投稿者:kamitani  投稿日:2020年12月17日(木)10時03分25秒 [103]
また、別の話させていただきます。

・http://www2.odn.ne.jp/merrybelle/のページ
 excel.exeを使う
 excelcli101.dll excelcs101.dll サンプル excel004.prg calendar3.prg excelcsv.prg
 をダウンロードさせてもらいました。うまく動作してます。

 ソースコードexcelcs101.csについて、お尋ねします。
 このファイルの先頭に次の宣言があります。
 using Microsoft.Office.Interop.Excel;
 
 よそのサイト情報を調ていたら、このライブラリー(?)には、セル単位で罫線を付ける機能が含まれてるようですね。

 そのサイトのページでは、こんな記述でした。
 ---------------------------------------------------
 //"A1:C5"セルに罫線を引く
 Excel.Range kRange = xlApp.get_Range("A1:C5",Type.Missing) as Excel.Range;
 kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlContinuous;
 kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlContinuous;
 kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlContinuous;
 kRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlContinuous;
 kRange.Borders.get_Item(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlContinuous;
 kRange.Borders.get_Item(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlContinuous;
 ---------------------------------------------------

ソースコードexcelcs101.csの中に、次の関数(とは言わないのなか)があります。
これは、1つのセル(y1,x1)に値を書き込むところですね。
-----------------------------------------------------
 		public int wcellval(int y1, int x1, int val01)
		{
			string strtemp;
			try
			{
				strtemp = "R" + y1.ToString() + "C" + x1.ToString();
				strtemp = (string)excelapp.ConvertFormula(strtemp, XlReferenceStyle.xlR1C1, XlReferenceStyle.xlA1, Type.Missing, Type.Missing);
				range = worksheet.get_Range(strtemp, Type.Missing);
				range.Value2 = val01.ToString();
			}
			catch (Exception e)
			{
				return -1;
			}
			return 0;
		}
----------------------------------------------

ここで、質問です。
上記関数の中に、上記よそのサイトのように罫線定義を入れたら、罫線を描画できますか。
できるならセル(y1,x1)に罫線を付けるコードの一例を書いて戴けませんか。

ここだけのコード追加で済まなくて、ややこし話になるんでしたら、改めて質問しなおします。
いつも面倒な話で恐縮です。


3つのファイルうまく出来ました。  投稿者:kamitani  投稿日:2020年12月2日(水)09時55分54秒 [102]
>下記はMicrosoft Visual Studio Community 2019を使いました
今回わざわざインストールされたようですね。

個々の設定情報のおかげで、次の3つのファイルうまくできました。
helloc.exe
hellocli.dll
hellocs.dll

お手数おかけしました。
ありがとうございました。

「Microsoft Visual Studio Community 2019」が無料でダウンロードできること、知らない人も多いでしょうね。
私がそうでしたから。

 投稿者:  投稿日:2020年11月29日(日)21時24分23秒 [101]
下記はMicrosoft Visual Studio Community 2019を使いました

自分でビルドする方へ
helloc.exeのビルド
Microsoft Visual Studio Community 2019を起動する
新しいプロジェクトの作成
C++ Windows コンソール
空のプロジェクト
次へ
プロジェクト名 helloc
場所 例D:\temp
作成
プロジェクト
新しい項目の追加
Visual C++
コード
C++ ファイル(.cpp)
ファイル名 helloc.cpp
追加
helloc.cppをコピペする
プロジェクト
helloc のプロパティ
構成 Debug
構成プロパティ
詳細
文字セット マルチバイト文字セットを使用する
C/C++
コード生成
ランタイム ライブラリ マルチスレッド デバッグ (/MTd)
言語
準拠モード いいえ
プリコンパイル済みヘッダー プリコンパイル済みヘッダーを使用しない
リンカー
全般
インクリメンタルリンクを有効にする いいえ(/INCREMENNTAL:NO)
適用
構成 Release
構成プロパティ
全般
文字セット マルチバイト文字セットを使用する
C/C++
コード生成
ランタイム ライブラリ マルチスレッド (/MT)
言語
準拠モード いいえ
プリコンパイル済みヘッダー プリコンパイル済みヘッダーを使用しない
リンカー
全般
インクリメンタルリンクを有効にする いいえ(/INCREMENNTAL:NO)
OK
ビルド
バッチビルド
Debug|x86
Release|x86
両方ともチェック
リビルド
2 正常終了、0 失敗、0 スキップ
D:\temp\helloc\Releaseにhelloc.exeがビルドされる




 投稿者:  投稿日:2020年11月29日(日)21時23分22秒 [100]
下記はMicrosoft Visual Studio Community 2019を使いました

自分でビルドする方へ
hellocs.dllのビルド
Microsoft Visual Studio Community 2019を起動する
新しいプロジェクトの作成
C# Windows ライブラリ
クラスライブラリ(.Net Framework)
次へ
プロジェクト名 hellocs
場所 例D:\temp
フレームワーク .Net Framework 3.5
作成
ソリューション エクスプローラー
Class1.csの名前を
hellocs.csと変更する
テンプレートを削除し
hellocs.csをコピペする
プロジェクト
hellocs のプロパティ
ビルド
構成 Debug
構成 Release
両方とも
アンセーフコードの許可
をチェック
ビルド
バッチビルド
Debug
Release
両方ともチェック
リビルド
2 正常終了、0 失敗、0 スキップ
D:\temp\hellocs\hellocs\bin\Releaseにhellocs.dllがビルドされる

hellocli.dllのビルド
Microsoft Visual Studio Community 2019を起動する
新しいプロジェクトの作成
C++ Windows ライブラリ
ダイナミック リンク ライブラリ(DLL)
次へ
プロジェクト名 hellocli
場所 例D:\temp
作成
ソリューション エクスプローラー
ソースファイル
dllmain.cppの名前を
hellocli.cppと変更する
テンプレートを削除し
hellocli.cppをコピペする
プロジェクト
hellocli のプロパティ
構成 Debug
構成プロパティ
詳細
共通言語ランタイム サポート 共通言語ランタイム サポート (/clr)
文字セット マルチバイト文字セットを使用する
C/C++
コード生成
ランタイム ライブラリ マルチスレッド デバッグ DLL (/MDd)
言語
準拠モード いいえ
プリコンパイル済みヘッダー プリコンパイル済みヘッダーを使用しない
リンカー
全般
インクリメンタルリンクを有効にする いいえ(/INCREMENNTAL:NO)
適用
構成 Release
構成プロパティ
詳細
共通言語ランタイム サポート 共通言語ランタイム サポート (/clr)
文字セット マルチバイト文字セットを使用する
C/C++
コード生成
ランタイム ライブラリ マルチスレッド DLL (/MD)
言語
準拠モード いいえ
プリコンパイル済みヘッダー プリコンパイル済みヘッダーを使用しない
リンカー
全般
インクリメンタルリンクを有効にする いいえ(/INCREMENNTAL:NO)
OK
ソリューション エクスプローラー
参照をクリック
プロジェクト
参照の追加
参照
D:\temp\hellocs\hellocs\bin\Release\hellocs.dllを追加
OK
ビルド
バッチビルド
Debug|x86
Release|x86
両方ともチェック
リビルド
2 正常終了、0 失敗、0 スキップ
D:\temp\hellocli\Releaseにhellocli.dllがビルドされる




 投稿者:  投稿日:2020年11月29日(日)21時12分40秒 [99]
前回の投稿はMicrosoft Visual Studio 2008を使いました
Microsoft Visual Studio 2008で警告だったところが
Microsoft Visual Studio Community 2019でエラーになります
helloc.cpp
hellocli.cpp
をなおしました



 投稿者:  投稿日:2020年11月27日(金)20時32分19秒 [98]
この掲示板の下のほうに
"自分でビルドする方へ"
があります
VS2019では確認していません

自分でビルドする方へ
hellocs.dllのビルド
Microsoft Visual Studio 2008を起動する
ファイル 新規作成 プロジェクト
Visual C#
クラスライブラリ
プロジェクト名 hellocs
場所 例D:\temp
OK
Class1.csの名前を
hellocs.csと変更する
テンプレートを削除し
hellocs.csをコピペする
プロジェクト
hellocs のプロパティ
ビルド
構成 Debug
構成 Release
両方とも
アンセーフコードの許可
をチェック
ビルド
バッチビルド
Debug
Release
両方ともチェック
リビルド
エラー 0、警告 0 警告があっても動作するが理解の上で使用すること
2 正常終了、0 失敗、0 スキップ
D:\temp\hellocs\hellocs\bin\Releaseにhellocs.dllがビルドされる

hellocli.dllのビルド
Microsoft Visual Studio 2008を起動する
ファイル 新規作成 プロジェクト
Visual C++
Win32
Win32コンソールアプリケーション
プロジェクト名 hellocli
場所 例D:\temp
OK
次へ
DLL
空のプロジェクト
をチェック
完了
プロジェクト
新しい項目の追加
Visual C++
コード
C++ ファイル(.cpp)
ファイル名 hellocli.cpp
追加
hellocli.cppをコピペする
プロジェクト
hellocli のプロパティ
構成プロパティ
構成 Debug
構成プロパティ
全般
文字セット マルチバイト文字セットを使用する
共通言語ランタイム サポート 共通言語ランタイム サポート (/clr)
C/C++
コード生成
ランタイム ライブラリ マルチスレッド デバッグ DLL (/MDd)
リンカ
全般
インクリメンタルリンクを行わない
適用
構成 Release
構成プロパティ
全般
文字セット マルチバイト文字セットを使用する
共通言語ランタイム サポート 共通言語ランタイム サポート (/clr)
C/C++
コード生成
ランタイム ライブラリ マルチスレッド DLL (/MD)
リンカ
全般
インクリメンタルリンクを行わない
共通プロパティ
Framework と参照
新しい参照の追加
参照
D:\temp\hellocs\hellocs\bin\Release\hellocs.dllを追加する
OK
ビルド
バッチビルド
Debug
Release
両方ともチェック
リビルド
エラー 0、警告 0 警告があっても動作するが理解の上で使用すること
2 正常終了、0 失敗、0 スキップ
D:\temp\hellocli\Releaseにhellocli.dllがビルドされる

helloc.exeのビルド
Microsoft Visual Studio 2008を起動する
ファイル 新規作成 プロジェクト
Visual C++
Win32
Win32コンソールアプリケーション
プロジェクト名 helloc
場所 例D:\temp
OK
次へ
コンソールアプリケーション
空のプロジェクト
をチェック
完了
プロジェクト
新しい項目の追加
Visual C++
コード
C++ ファイル(.cpp)
ファイル名 helloc.cpp
追加
helloc.cppをコピペする
プロジェクト
helloc のプロパティ
構成プロパティ
構成 Debug
構成プロパティ
全般
文字セット マルチバイト文字セットを使用する
C/C++
コード生成
ランタイム ライブラリ マルチスレッド デバッグ (/MTd)
リンカ
全般
インクリメンタルリンクを行わない
適用
構成 Release
構成プロパティ
全般
文字セット マルチバイト文字セットを使用する
C/C++
コード生成
ランタイム ライブラリ マルチスレッド (/MT)
リンカ
全般
インクリメンタルリンクを行わない
OK
ビルド
バッチビルド
Debug
Release
両方ともチェック
リビルド
エラー 0、警告 0 警告があっても動作するが理解の上で使用すること
2 正常終了、0 失敗、0 スキップ
D:\temp\helloc\Releaseにhelloc.exeがビルドされる



5つのサンプルファイルについて  投稿者:kamitani  投稿日:2020年11月27日(金)08時52分00秒 [97]
当方、基本的なことが、まだ理解できてないんですが、
今回、次の3つのソースコードと、2つのdllファイルがあります。

(1) helloc.cpp
(2) hellocli.cpp
(3) hellocs.cs
(4) hellocli.dll
(5) hellocs.dll

Q1:今回(1)は何のために添付されてるんですか。
 helloc.exeを作って、そこから、(4)や(5)の動作を確認するためですね。

Q2:VS2019でhelloc.exeを作る場合、、
 「空のプロジェクト  C++  Windows  コンソール」のテンプレートでいいんですか。
 その場合、ソースファイルとして、helloc.cppを追加すればいいのかと思ったら、ちがうようですね。
 ソースコードの仕様が違ってるようなエラーが出ます。

Q3:(4),(5)を作成するまで、VS2019のどのテンプレートをどんな順番に使うことになりますか。
 聞いても私には分からないかもしれませんが。
 C++は、VS2005辺りで、exeやdllをいくつか作った経験しかありませんし、C#は、もっと知らないです。
 
 すみません。

 投稿者:  投稿日:2020年11月24日(火)12時32分35秒 [96]
アセンブリ名のついたサブフォルダに置くとは
たとえば
D:\temp\ARAGOPRO.EXEであれば
D:\temp\hellocs\hellocs.dllとなる
kamitaniさんの言うように仕様のようです

投稿した後そのまま
再読み込みすると
再投稿されるようです



C#のDLLは  投稿者:kamitani  投稿日:2020年11月24日(火)09時08分34秒 [94]
今回の3つほどのプログラム、自分で再現しようかと、ソースコードを眺めはじめたところです。
が、私には難しかったです。

>アセンブリ名のついたサブフォルダ
その言葉さえ、何を指すのか分かりません。
とりあえず、実行ファイルの場所にすると、覚えておきます。

 投稿者:  投稿日:2020年11月18日(水)08時06分07秒 [93]
前回投稿の
"hellocli.dllのカレントディレクトリがARAGOPRO.EXEの場所になるので・・"
は間違いです(意味不明でした)


C#のDLLは
"実行ファイルと同じフォルダまたはアセンブリ名のついたサブフォルダに置く"
が正解のようです




hellocli.dllなど実行できました。  投稿者:kamitani  投稿日:2020年11月17日(火)14時32分30秒 [92]
いつも早々のレス、ありがとうございます。

>ARAGOPRO.EXEのフォルダにhellocs.dllがなければ

そのとおりでした。
同一フォルダーに入れたら、OKでした。

いままで、自分で用意したdllは、*.prgと同じフォルダーに入れて使ってましたけどね。
仕様が変わったと思うことにします。
とにかく、一歩前進しました。

これから、C#のdllについて研究します。

ほとんど理解してないので、またよろしくお願いします。


 投稿者:  投稿日:2020年11月17日(火)13時08分45秒 [91]
hellocli.dllのカレントディレクトリがARAGOPRO.EXEの場所になるので
ARAGOPRO.EXEのフォルダにhellocs.dllがなければ
hellocli.dllがhellocs.dllをロードできません

aragowのSET PATH TOなどでパスを指定しても
hellocli.dllのパスには反映されないようです


*merrybelle.sub.jpから
*hellocli.dll(C++/CLIのDLL)
*hellocs.dll(C#のDLL)
*をダウンロードする
*aragowからhellocli.dllを経由してhellocs.dllのメソッドを呼び出す

EXTERN CDECL CINT loaddll(CVOID) hellocli.dll
EXTERN CDECL CSTRING methodcli1(CSTRING,CSTRING,CSTRING) hellocli.dll
EXTERN CDECL CSTRING methodcli2(CSTRING,CSTRING,CSTRING,CSTRING) hellocli.dll

if loaddll()=-2
	? 'hellocs.dllをロードできません'
	return
endif

store 'Hello world' to str1
store 'ハローワールド' to str2
store space(100) to str3
? methodcli1(str1,str2,str3)

store 'グッドバイワールド' to str3
store space(100) to str4
? methodcli2(str1,str2,str3,str4)



C#のDLLをaragowから呼び出す件  投稿者:kamitani  投稿日:2020年11月17日(火)08時40分28秒 [90]
早々のレスありがとうございました。

ARAGOW上でDLLがエラーしてるようなので、お尋ねします。

ARAGOWやVS2019をインストールしているPCの1フォルダー D:\ARAGOW\_ARG-CS-DLL\ 内に以下のファイルを集めました。

helloc.cpp
helloc.exe
hellocli.cpp
hellocli.dll
hellocs.cs
hellocs.dll

TEST1.PRG
TEST2.PRG
TEST3.PRG
hellocRun0.bat
hellocRun1.bat
ARAGOPRO.EXE - ショートカット.lnk

ARAGOW上で、ご提示のブログラムを実行すると、
? methodcli1(str1,str2,str3)
とか、
? methodcli2(str1,str2,str3,str4)
の行で、エラーが発生するらしく、ARAGOW自体の画面が閉じてしまいます。

部分的に実行すると、こうです。
===================================================================================
*TEST2.PRG
SET TALK OFF
CLEAR
DO TEST
CANCEL

*-------------------------------------------------------------------------------
PROCEDURE TEST

EXTERN CDECL CSTRING methodcli1(CSTRING,CSTRING,CSTRING) hellocli.dll
EXTERN CDECL CSTRING methodcli2(CSTRING,CSTRING,CSTRING,CSTRING) hellocli.dll

store 'Hello world' to str1
store 'ハローワールド' to str2
store space(100) to str3

? "str3=",str3,"LEN(str3)=",LEN(str3) && この行は表示されますが・・・
? methodcli1(str1,str2,str3) && ここでエラーが発生してるようで
? "str3=",str3,"LEN(str3)=",LEN(str3) && この行表示前に、ARAGOW.EXEが終了してしまいます。

*store 'グッドバイワールド' to str3
*store space(100) to str4
*? methodcli2(str1,str2,str3,str4)
*? "str4=",str4

RETURN
===================================================================================
hellocli.dllやhellocli.dllのファイル名を変更すると、EXTERN の行でエラー停止しますから、DLLは読み取ってます。

こうやってみても同じです。
===================================================================================
*-------------------------------------------------------------------------------
PROCEDURE TEST

EXTERN CDECL CSTRING methodcli1(CSTRING,CSTRING,CSTRING) hellocli.dll
EXTERN CDECL CSTRING methodcli2(CSTRING,CSTRING,CSTRING,CSTRING) hellocli.dll

store 'Hello world' to str1
store 'ハローワールド' to str2
store space(100) to str3

*? "str3=",str3,"LEN(str3)=",LEN(str3) && この行は表示されますが・・・
*? methodcli1(str1,str2,str3) && ここでエラーが発生してるようで
*? "str3=",str3,"LEN(str3)=",LEN(str3) && この行表示前に、ARAGOW.EXEが終了してしまいます。

store 'グッドバイワールド' to str3
store space(100) to str4    && こちらも同様にでエラーが発生してるようで、ここでARAGOW.EXEが終了してしまいます。
? methodcli2(str1,str2,str3,str4) 
? "str4=",str4
RETURN
===================================================================================


次に、
helloc.exeというのがあったので、起動してみました。

===================================================================================
REM hellocRun0.bat
echo off
helloc.exe > hellocRun0画面.txt
pause
===================================================================================
<出力画面>
Hello world ハローワールド

Hello world ハローワールド グッドバイワールド


===================================================================================
REM hellocRun1.bat
echo off
helloc.exe aaa bbb ccc > hellocRun1画面.txt
pause
===================================================================================
<出力画面>
aaa bbb

aaa bbb ccc


●C#以前に、C++/CLIのDLLがトラブルみたいです。

お分かりでしょうか。


 投稿者:  投稿日:2020年11月13日(金)12時53分46秒 [89]
C#のEXEでaragowのDBFファイルを読み書きできるので
C#のEXEだけですむこともあるでしょう

C#のEXEをaragowのrunで実行しデータをDBFファイルに保存すれば
そのDBFファイルをaragowで使うことができます


下記はC#のDLLをaragowから呼び出してその戻り値をaragowで使うサンプルです

*merrybelle.sub.jpから
*hellocli.dll(C++/CLIのDLL)
*hellocs.dll(C#のDLL)
*をダウンロードする
*aragowからhellocli.dllを経由してhellocs.dllのメソッドを呼び出す

EXTERN CDECL CSTRING methodcli1(CSTRING,CSTRING,CSTRING) hellocli.dll
EXTERN CDECL CSTRING methodcli2(CSTRING,CSTRING,CSTRING,CSTRING) hellocli.dll

store 'Hello world' to str1
store 'ハローワールド' to str2
store space(100) to str3
? methodcli1(str1,str2,str3)

store 'グッドバイワールド' to str3
store space(100) to str4
? methodcli2(str1,str2,str3,str4)




ARAGOWからC#のDLL呼び出しの話  投稿者:kamitani  投稿日:2020年11月13日(金)08時29分28秒 [88]
管理人 様

前回「カスタマバーコード」ではお世話になりました。

最近、VS2019 C#コンソール・アプリ(.NET Freamwork) の自作プログラムを補助的に使ってます。

今度は、こちらのお話の続きです。
>投稿日:2020年7月10日
>ARAGOWからC++/CLIのDLLを経由して
>C#のDLLを呼び出すことができます

この意味がよくわからないのですが、上記C#で作ったDLLプログラムをARAGOWから呼び出せるということでしょうか。


どこかのWeb上に、簡単な事例記事など、ないでしょうか。
全然急いでおりません。
よろしくどうぞ。



今回のトラブルは解決済です。  投稿者:kamitani  投稿日:2020年7月21日(火)14時11分26秒 [87]
今回のトラブルは[80]の
EXTERN CINT YubinBarcode(CSTRING,CSTRING,CSTRING) YuBar.dll
これで、100%解決しています。
ありがとうございました。


[85][86]はなんのことかよくわかりませんが、不要です。
カスタマーバーコード、理想的に記録処理できています。
本件解決済ですから。

いままた別の課題あるんですが、今度また具体的に相談させていただきます。

 投稿者:  投稿日:2020年7月19日(日)07時15分00秒 [86]
nukidasi.prg
カスタマバーコードに必要な文字情報を抜き出す
制御コードは次に示すASCIIコードで置き換える

 制御コード  ASCIIコード
  CC1   →  a
  CC2   →  b
  CC3   →  c
  CC4   →  d
  CC5   →  e
  CC6   →  f
  CC7   →  g
  CC8   →  h

カスタマバーコードをBMPファイルで出力する



 投稿者:  投稿日:2020年7月15日(水)11時16分48秒 [85]
*カスタマバーコード
EXTERN CDECL CINT yubar01(CSTRING,CSTRING) overlayprn001.dll
*コード(文字列),ファイル名
store yubar01("10000001-2-3A101","temp@@1.bmp") to error01
? error01


全角スペースのトラブルは別の話でした.  投稿者:kamitani  投稿日:2020年7月12日(日)10時04分02秒 [84]
誤解させてすみません。
今回のトラブルではありません。
ARAGOWのブログラムデバッグ中の一般的なトラブルの話でした。

ブログラムの記述がどこにも間違いないのに、エラーになることがたまにあります。
そのパターンの1つでよくあるケースが全角スペースです。
目に見えないから、気が付かないのです。

それとは別に最後まで理由が不明だったというケースがあります。
たぶん何かのはずみで、文字表示されない制御コードが混入したりしたんだと推測してます。
そういうケースでは、不要空白行を消したり、再度文字入力しなおしたりしたらOKになるのです。(私の場合)

*.PROファイルを一旦消して、再実行したらOKになることもあります。
原因不明のトラブルを時々経験してます、という話のつもりでした。

丁寧なアドバイスありがとうございました。

 投稿者:  投稿日:2020年7月12日(日)07時22分34秒 [83]
*"全角スペースがエラーになる"について
*下記のようにaddressをARAGO側で処理するのではどうですか?
address0='東京都 1丁目2の3 a-101'
set language to japanese
store len(address0) to n
store 1 to c
store '' to address1
do while c<=n
	set language to japanese
	store subs(address0,c,1) to check0
	store subs(address0,c+1,1) to check1
	set language to american
	if len(check0)=1 .and. ((asc(check0)>=48 .and. asc(check0)<=57) .or. ;
(asc(check0)>=65 .and. asc(check0)<=90) .or. (asc(check0)>=97 .and. asc(check0)<=122))
		if asc(check0)>=97 .and. asc(check0)<=122
			store chr(asc(check0)-32) to check0
		endif
		if len(check1)<>1 .or. .not. ((asc(check1)>=48 .and. asc(check1)<=57) .or. ;
(asc(check1)>=65 .and. asc(check1)<=90) .or. (asc(check1)>=97 .and. asc(check1)<=122))
			store address1+check0+'-' to address1
		else
			store address1+check0 to address1
		endif
	endif
	store c+1 to c
enddo
store len(address1) to n
if subs(address1,n,1)='-'
	store subs(address1,1,n-1) to address1
endif
? address1


YuBar.dll  投稿者:kamitani  投稿日:2020年7月11日(土)08時32分05秒 [82]
出来ました!

過日、自分で試してたときから、
YubinBarcode(postno,address,outcode)
これに相当する行で「YubinBarcodeがありません」という意味のエラーになってました。

C#プログラムの中では、
 string sOutCode = outCode.ToString(0, 23);
このように、普通の文字列に変換しないといけないから、StringBuilder は、特別な変数なのだと諦めてました。

今回も最初、同じ現象になってましたが、前後の文字列を書き換えたりしてる内に直りました。
(ごくまれに空白行を消したら直ることがありますね。全角スペースがエラーになることは度々ですが、そうじゃないパターンでも。)

outcodeは、23バイト固定なので先頭の23文字を取り出すだけでOKでした。

とにかくできました。
早々のレス、ありがとうございました。

 投稿者:  投稿日:2020年7月10日(金)19時55分47秒 [81]
ARAGOWからC++/CLIのDLLを経由して
C#のDLLを呼び出すことができます

 投稿者:  投稿日:2020年7月10日(金)19時32分05秒 [80]
EXTERN CINT YubinBarcode(CSTRING,CSTRING,CSTRING) YuBar.dll
store '1000000' to postno
store '東京都' to address
store space(200) to outcode
YubinBarcode(postno,address,outcode)
? trim(outcode)
で動きませんか?

ARAGOW用のDLLの話  投稿者:kamitani  投稿日:2020年7月10日(金)09時14分34秒 [79]
管理人様

こちらの掲示版、まだサポートされてますでしょうか。
私、数年前、ARAGOWの方の掲示板で、DLLについていろいろご教授いただいきました。
当方依然、ARAGOWで社内業務用アプリを粗製乱造しております。

今回郵送物の宛名にカスタマーバーコードを印刷することになって、市販ソフト(*1)を購入しました。
自作できそうでしたが「早くやりたい。」と言われたので。

*1:https://www.rolan.co.jp/shouhin/s_yubar.html

購入した市販ソフトには、開発者向けに VS C#のサンプルプロクラムやYuBar.dllが付いてました。
私は、そのサンプルプロクラムを改造して、名簿データのDBFファイルから直接バーコードを生成するようにできました。C#のEXEファイルです。

YuBar.dllは、ARAGOWのEXTERNの記述で利用できませんでした。
今回お尋ねしたいのは、それができるようにならないかということです。

YuBar.dllの仕様はこれです。
---------------------------------------------------
[DllImport(YuBarDllName, EntryPoint="YubinBarcode")]
	public static extern int YubinBarcode(
	string postNo, 
	string address2, 
	StringBuilder outCode);
---------------------------------------------------

C#のプログラムの中で、postNo(郵便番号)とaddress2(住所)を与えてやると、バーコードフォントの文字列(outCode)が返ってくるという仕様です。

ARAGOWのEXTERNで使えなかったのは、outCodeがただの文字列でなく、StringBuilder だからでしょうね。
それだけの問題ではなく、そもそもARAGOW用の初期のDLLと、最近のDLLは仕様が違ってるんでしょうか。

dumpbin.exe というツールで見るとこうなります。
---------------------------------------------------
Dump of file YUBAR.DLL

File Type: DLL
  Section contains the following exports for YUBAR.dll

    00000000 characteristics
    577DF767 time date stamp Thu Jul 07 15:32:07 2016
        0.00 version
           1 ordinal base
          40 number of functions
          12 number of names

    ordinal hint RVA      name

          1    0 00005BA0 CnvPNCB
          2    1 00005B80 ConvAreaNo
         21    2 00001000 YubarDraw
         23    3 00001120 YubarDrawPixcel
         22    4 00001A00 YubarDrawWhole
         30    5 00003790 YubarExportBMP
         31    6 000037E0 YubarExportBMPAtColorBit
         25    7 000011F0 YubarGetDrawSize
         26    8 00001300 YubarGetDrawSizePixcel
         40    9 00005C30 YubarSetClipBoard
         20    A 00003E10 YubarVerify
          3    B 00005B60 YubinBarcode

---------------------------------------------------

いま、前記のようにYUBAR.DLLを取り込んだC#の実行ファイル*.exeは出来てます。
C#でも、DLLファイルを作るプロジェクトがありますが、いまのプロジェクトを.dll用に変更したら、ARAGOWで利用可能なDLLファイルができるんでしょうか。

C#にこだわる必要はないんですが、少しわかったきたところなので。

お分かりでしたら、またアドバイスください。
全然急ぎませんから・・・。


ありがとうございます。  投稿者:あたみりゅ  投稿日:2019年3月1日(金)16時13分18秒 [78]
返答ありがとうございます。

やはりサービスでは動かないのですね。
startup1.exeを利用させていただきます。

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

 投稿者:  投稿日:2019年3月1日(金)14時06分58秒 [77]
前記変更しました
例http://192.168.0.200/aragoi/aragoi.exe?overlayprn.prg
を
http://192.168.0.200/aragoi/startup1.exe?overlayprn.prg
とします


 投稿者:  投稿日:2019年3月1日(金)11時08分45秒 [76]
書き込みありがとうございます
例http://192.168.0.200/aragoi/aragoi.exe?overlayprn.prg
はサービスで動きませんが
WebサーバでEXE形式が実行可であるならば
aragoi.exe?overlayprn.prgを実行するstartup1.exeで
http://192.168.0.200/aragoi/startup1.exe
とするとサービスでも動くようです
startup1.exeをmerrybelleに置きました
aragoi.exe
overlayprn.prg
overlayprn001.dll
overlayjpeg001.dll
startup1.exe
を同じフォルダに置く
サービスを有効にするには再起動が必要のようです


aragoiで印刷について  投稿者:あたみりゅ  投稿日:2019年2月26日(火)10時15分40秒 [75]
初めまして、いつも陰ながら利用させていただき、大変勉強になっております。

aragoiで印刷のoverlayprn001.dllを使って、PDFを作成してみたのですが、
apacheを手動でhttpd.exeを起動したり、prgをaragoのインタプリタで動かした時は正常にPDFCreaterでPDFファイルが作成されるのですが、httpd.exeをサービスに登録してプログラム実行するとエラーは出ないのですが、PDFCreaterが動作しません。

store createdc01("PDFCreator",0,0,0,0) to hdc

でhdcの値は毎回0以外の数値は返ってきているようです。

何が原因なのかわからず困っております。
解決法はありますでしょうか。

 投稿者:  投稿日:2018年12月29日(土)08時51分13秒 [74]
mail001.dllにバッファオーバーランの危険があり
pop30.prgとmail001.dllをなおしました
バッファオーバーランは地雷のようなもので
触れなければ何も起こらない
触れると致命的な問題が起こります


mail001について  投稿者:kourogi  投稿日:2018年12月22日(土)00時31分42秒 [73]
詳細にありがとうございます。

結構、プログラムの変更箇所が多くなりそうで
実行できていませんが、
テストできましたら
ご報告させていただきます。

新しいmail001.dllで
最近、削除できない現象がなく
そのまま続けています。

いつもありがとうございます。


 投稿者:  投稿日:2018年12月13日(木)11時34分03秒 [72]
pop3用のpop30.prgとmail001.dllを新しくしました
このprg内でデータの取得をすると処理が頓挫し
メール受信とメール削除ができない可能性があります
1
メール受信とメール削除はprgで一気に処理する
SET ALTERNATE TO d:\temp\temp30.txt
SET ALTERNATE ON
・・・
SET ALTERNATE OFF
SET ALTERNATE TO
とするとメールのヘッダ部とボディ部が
temp30.txtにダウンロードされる
2
temp30.txtをもとにデータ取得の処理をする
temp30.txtをみれば
メールの
Content-Type:
charset=
Content-Transfer-Encoding:
もわかります



mail001について  投稿者:kourogi  投稿日:2018年12月12日(水)00時35分34秒 [71]
>メールをprgで受信する目的がわかりません
>メールの本文からデータを取得するのですか?

そうなんです。
データはまとめて手動でCSVで取れますが、リアルタイムでないので
受注自動 連絡メールを監視していて

メール内にある
受注番号:3125
注文者名:山田花子

などの「受注番号:」の行を拾っています
IDNO=rtri(subs(data,(at("受注番号:",data1)+11)))
なんて感じです。

メールは機械が出すので
文章の文句や字数は決まっています。

なんとかこの方法で取得したいのですが
問題が多いのでしょうか。
現在取得できずに消えないのは
これに関する原因でしょうか。

すみません、私には
メールの
Content-Type:
charset=
Content-Transfer-Encoding:

の理解がありませんでした。

 投稿者:  投稿日:2018年12月10日(月)11時34分23秒 [70]
メールをprgで受信する目的がわかりません
メールの本文からデータを取得するのですか?
データは添付ファイルでいいのでは?
メールは多様で
メールの
Content-Type:
charset=
Content-Transfer-Encoding:
がわからないと処理が難しいと思います



mail001について  投稿者:kourogikun  投稿日:2018年12月8日(土)14時28分20秒 [69]
pop30ex.prgはつかっていませんでした。
pop30ex.prgで書き換えて実行すると
ファイルが存在しません RECVJISHEADER.PRG
となります。
なぜかわかりません。

mail001について  投稿者:kourogi  投稿日:2018年12月3日(月)00時30分28秒 [68]
pop30ex.prg
で書き換えると
ファイルが存在しません RECVJISHEADER.PRG
となります。

 投稿者:  投稿日:2018年12月2日(日)08時21分27秒 [67]
レスポンスがそれであればokでしょう
RSET(削除マークのリセット)を入れたのはレスポンスを確認するためです

“文章になってない固定長の半角文字の羅列のメールです。”は
base64がデコードされていないのです
prgのバグです
もしpop30ex.prgを使っているのならば
pop30ex.prgは何度もなおしましたので新しいpop30ex.prgを使ってください
STORE SPACE(32500) TO string01
if content=0 .and. charset=0 .and. encode=1
	store subjisquoted(check01,string01) to check01
elseif content=0 .and. charset=1 .and. encode=1
	store subutfquoted(check01,string01) to check01
elseif content=0 .and. charset=1 .and. encode=2
	store subutf8bit(check01,string01) to check01
elseif content=0 .and. charset=1 .and. encode=3
	store subutf8bit(check01,string01) to check01
else
	store subjisoneline(check01,string01) to check01
endi
のところはSPACE(32500)となっていますか?
メールのソースをみてエンコーディングがどうなっているか教えてください



pop301 について  投稿者:kourogi  投稿日:2018年12月1日(土)22時10分27秒 [66]
レスポンス(?の内容)は
+OK 28 125031
+OK
+OK
これが続いて、
最初が見れません
wait で確認しても大丈夫でしょうか。
2回目も、すべて削除されました。

pop301 について  投稿者:kourogi  投稿日:2018年11月30日(金)20時50分10秒 [65]
ありがとうございます。
結果を言うと

下記のプログラムのままだと
消えずに残っていましたが

RSETを排除すると、サーバー占有バイトが0になりました。

これはオーダーのコピーのコピーを試しました。

 投稿者:  投稿日:2018年11月30日(金)11時59分15秒 [64]
DELEで削除マークされ
RSETでリセットされ
QUITで更新される
テスト用のメールアドレスで
下記でレスポンス(?の内容)はどうなりますか?
**************************************************************************
PROCEDURE pop301
	*POP3サーバーに接続
	store opensock(pop01,110,60) to sock
	if sock>0
		STORE SPACE(1000) TO string01
		STORE recvsockoneline(sock,string01) TO n
		? SUBSTR(string01,1,n)
		sendjis(sock,'USER '+Username01+CHR(13)+CHR(10))
		STORE SPACE(1000) TO string01
		STORE recvsockoneline(sock,string01) TO n
		? SUBSTR(string01,1,n)
		sendjis(sock,'PASS '+Password01+CHR(13)+CHR(10))
		STORE SPACE(1000) TO string01
		STORE recvsockoneline(sock,string01) TO n
		? SUBSTR(string01,1,n)
		store 0 to mail01
		sendjis(sock,'STAT'+CHR(13)+CHR(10))
		STORE SPACE(1000) TO string01
		STORE recvsockoneline(sock,string01) TO n
		? SUBSTR(string01,1,n)
		store subs(string01,1,n) to check01
		store val(subs(check01,4,len(check01)-3)) to mail01
		if mail01>0
			store 1 to mail02
			do while mail02<=mail01
*メール削除
				sendjis(sock,'DELE '+str(mail02)+CHR(13)+CHR(10))
				STORE SPACE(1000) TO string01
				STORE recvsockoneline(sock,string01) TO n
				? SUBSTR(string01,1,n)
				store mail02+1 to mail02
			endd
		endi
*RSET
		sendjis(sock,'RSET'+CHR(13)+CHR(10))
		STORE SPACE(1000) TO string01
		STORE recvsockoneline(sock,string01) TO n
		? SUBSTR(string01,1,n)
		sendjis(sock,'QUIT'+CHR(13)+CHR(10))
		STORE SPACE(1000) TO string01
		STORE recvsockoneline(sock,string01) TO n
		? SUBSTR(string01,1,n)
		closesock(sock)
	endi
RETURN
**************************************************************************

上記で
*RSET
*		sendjis(sock,'RSET'+CHR(13)+CHR(10))
*		STORE SPACE(1000) TO string01
*		STORE recvsockoneline(sock,string01) TO n
*		? SUBSTR(string01,1,n)
とすると全メールが削除されますか?



mail001について  投稿者:kourogi  投稿日:2018年11月30日(金)01時40分25秒 [63]
補足すると、
注文があったときに、ヤフーショッピングから、弊社に来る受注お知らせメールは
オーダー番号が割り振られるので、
お客様が同じものを2回買うと、2種のオーダー番号で2通メールが来ます。
したがって、ヤフーショッピングから来るメールに重複はないが

受け取ったメールが、サーバーから消えずに
再度受信した場合、
オーダー番号で重複を阻止するように
プログラムすれば防げます、
しかし、消えないメールがどんどん貯まり
サーバーが消えないメールで膨らみます。

*メール削除
*		sendjis(sock,'DELE '+str(mail02)+CHR(13)+CHR(10))
*		STORE SPACE(1000) TO string01
*		STORE recvsockoneline(sock,string01) TO n
*		? SUBSTR(string01,1,n)

の部分で消えていなかったら、繰返しするような手法をとるのは
まずいでしょうか。

さらに
消えていなかったら というチェックはどうすればいいでしょうか

mail001について  投稿者:kourogi  投稿日:2018年11月30日(金)00時26分58秒 [62]
補足すると、
注文があったときに、ヤフーショッピングから、弊社に来る受注お知らせメールは
オーダー番号が割り振られるので、
お客様が同じものを2回買うと、2種のオーダー番号で2通メールが来ます。
したがって、ヤフーショッピングから来るメールに重複はないが

受け取ったメールが、サーバーから消えずに
再度受信した場合、
オーダー番号で重複を阻止するように
プログラムすれば防げます、
しかし、消えないメールがどんどん貯まり
サーバーが消えないメールで膨らみます。

*メール削除
*		sendjis(sock,'DELE '+str(mail02)+CHR(13)+CHR(10))
*		STORE SPACE(1000) TO string01
*		STORE recvsockoneline(sock,string01) TO n
*		? SUBSTR(string01,1,n)

の部分で消えていなかったら、繰返しするような手法をとるのは
まずいでしょうか。

さらに
消えていなかったら というチェックはどうすればいいでしょうか

mail001について  投稿者:kourogi  投稿日:2018年11月29日(木)22時58分20秒 [61]
重複か故意かは
連番をオーダー番号として
ヤフーサイトが割り振るので
重複はあり得ません。

sleep 2 でもサーバーのメールが削除できないです
うーん、困りました。

 投稿者:  投稿日:2018年11月28日(水)11時29分12秒 [60]
注文メールが重複することはあり得ることで
この場合
間違えて2度送信されたのか
同じ物2品注文なのかがわかりませんね
webでの注文ですと即座に自動返信メールが届きますので
すぐに返信メールが届かないと再送信する人もいるのかな


mail001 受信について  投稿者:kourogi  投稿日:2018年11月28日(水)00時58分58秒 [59]
沢山のアドバイスありがとうございます。

Yahoo ショッピングや、自社サーバーにお客様から注文を頂くと xx@xxx と
xxcopy@xxx の2つにメールが来るように設定しています。

このうちxx@xxxのメール着信を 5分タイマーで mail001でチェックしています。
なので xx@xxxのメールは消しても コピーメールで記録は残っています。
今日は3件しか注文がなかったのですが
sleep 2
でうまく消えています。

しかし5分タイマーで、受信したメール文は
仮のデーターベースにいったん保管後
受信完了後に
仮のデーターベースから
本受注データベースに加える前に
重複じゃないか、チェックは必要だと思います。

問題があり、たまに変なメールが混ざります。
文章になってない固定長の半角文字の羅列のメールです。
そんなメールの対策も必要かもしれません。

それが受信すると、それ以降削除できなくなるとか
何か弊害を疑います。

 投稿者:  投稿日:2018年11月27日(火)17時03分34秒 [58]
前記の補足
Message-IDのないメールもあるので
Date:
で


 投稿者:  投稿日:2018年11月27日(火)16時31分09秒 [57]
prgで未受信のメールのチェック方法について
前の書き込みではだめですね
前回受信のメール番号1のMessage-IDと
今回受信のメール番号1のMessage-IDと
をチェックして
同じ場合は
前回受信済の次のメール番号から受信する
異なる場合は
メール番号1から受信する
でどうでしょう


 投稿者:  投稿日:2018年11月27日(火)13時49分44秒 [56]
sleep 秒
*メール削除
*				sendjis(sock,'DELE '+str(mail02)+CHR(13)+CHR(10))
*				STORE SPACE(1000) TO string01
*				STORE recvsockoneline(sock,string01) TO n
*				? SUBSTR(string01,1,n)
のようにsleepを入れるといいかもしれませんが・・
prgでメール削除をしないほうがいいと思います
		sendjis(sock,'STAT'+CHR(13)+CHR(10))
		STORE SPACE(1000) TO string01
		STORE recvsockoneline(sock,string01) TO n
		? SUBSTR(string01,1,n)
		store subs(string01,1,n) to check01
		store val(subs(check01,4,len(check01)-3)) to mail01
でメールサーバーにあるメール数がわかるので
前回取得したmail01より今回が増えていれば
新しいメールがあるので
前回の次のメール番号から受信する
前回取得したmail01より今回が減っていれば
正規のメーラーで受信しサーバーのメールが削除された後に
新しいメールがあるので
メール番号1から受信する

私にはよくわかりませんが
通販の自動返信メールはあくまで仮で
後で正式のメールが届くようです
sendssl(ssl,'RCPT TO: <'+rcptto01+'>'+CHR(13)+CHR(10))
STORE SPACE(1000) TO string01
STORE recvssloneline(ssl,string01) TO n
? SUBSTR(string01,1,n)
の下に
sendssl(ssl,'RCPT TO: <'+送信済みメール確認用のメールアドレス+'>'+CHR(13)+CHR(10))
STORE SPACE(1000) TO string01
STORE recvssloneline(ssl,string01) TO n
? SUBSTR(string01,1,n)
とBCCを追加して自動返信メールの記録を残す
担当者が
注文メールを正規のメーラーで受信し(この時に受信済メールを削除する)
自動返信メールの記録を確認して
正式の受注メールを送る
などではどうでしょう
prgでメール削除してしまうと何かの場合の対処が・・


mail001 受信について  投稿者:kourogi  投稿日:2018年11月27日(火)01時13分58秒 [55]
受信した後に、サーバーから削除できない現象が
10件に1件くらい発生しています。
そのため、再度同じメール受信してしまい、重複するのです。
多くは消えるのですが、消えないメールが発生するときがあります。

何か、回避方法として試してみる事項はないでしょうか。
サーバーも受信後消えたときは0バイトですが、
消えないメールが残っているようです。

アドバイス頂けたらありがたいです。


mail002 送信について  投稿者:kourogi  投稿日:2018年10月22日(月)00時59分18秒 [54]
正常送信は コメ47で頂いた
250 MAIL FROM:<xxx@xxx.ne.jp> OK
250 RCPT TO:<xxx@xxx.ne.jp> OK
があれば正常送信したと判断するプログラムを
追加しました。
キャンセルや、商品発送時の連絡など
状況に応じて
現在メール自動送信がうまくいってます。
別のメール送信アプリで送信していた時より
かなり作業時間が短縮できました。
とっても楽になって、感謝しています。

相変わらず、アラゴは急に落ちます。
WIN10の64ビットでアラゴ32ビットを動かしていることも関係あるのでしょうか。
当方 アラゴ6.5です。




 投稿者:  投稿日:2018年10月14日(日)09時50分15秒 [53]
メールの送り方がいろいろあります
企業からのメールはHTMLメールが多いです
mail002.dllでHTMLメールを送るときは
Shift_JISでhtmlファイル
<html>
<head>
・・・
</head>
<body>
・・・
</body>
</html>
を作る
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
などは入れなくてもok
sendssl(ssl,'Content-Type: multipart/alternative; boundary="'+boundary01+'"'+CHR(13)+CHR(10))
・・・
sendssl(ssl,'--'+boundary01+CHR(13)+CHR(10))
sendssl(ssl,'Content-Type: text/plain; charset="utf-8"'+CHR(13)+CHR(10))
・・・
テキスト送信
・・・
sendssl(ssl,'--'+boundary01+CHR(13)+CHR(10))
sendssl(ssl,'Content-Type: text/html; charset="utf-8"'+CHR(13)+CHR(10))
・・・
htmlファイル送信
・・・
とする
メールクライアントでhtmlファイルが優先的に表示される


 投稿者:  投稿日:2018年10月11日(木)20時41分18秒 [52]
前記の改行後のピリオドについては
送信側で"."を".."に変換して送信すること
とありました
結局mail002.dllのバグということになりますが
受信側の混乱もあるようです
前記の方法でも文字化けはないと思います


 投稿者:  投稿日:2018年10月10日(水)12時52分00秒 [51]
いろいろなメールでテストしてみると
quoted-printableでエンコードした
"0D0A."
となるところの"."が抜け落ちて
文字化けしました
原因が
Windows Live メールなのかメールサーバーなのか
わかりませんが
とりあえず
"."を"=2E"にエンコードするように
mail002.dllを変更しました
人(私も)を見たらバグと思え・・なんでしょうか


 投稿者:  投稿日:2018年10月8日(月)08時05分43秒 [50]
送信メールの確認についてですが
(メールが届いたかどうかはわかりませんが・・)
PROCEDURE sendmail01
の
sendssl(ssl,'RCPT TO: <'+rcptto01+'>'+CHR(13)+CHR(10))
STORE SPACE(1000) TO string01
STORE recvssloneline(ssl,string01) TO n
? SUBSTR(string01,1,n)
の下に
sendssl(ssl,'RCPT TO: <'+送信済みメール確認用のメールアドレス+'>'+CHR(13)+CHR(10))
STORE SPACE(1000) TO string01
STORE recvssloneline(ssl,string01) TO n
? SUBSTR(string01,1,n)
を追加するのはどうでしょう



 投稿者:  投稿日:2018年10月7日(日)10時21分40秒 [49]
mail001.dllとmail002.dllに
メモリー解放のバグがありなおしました
OpenSSL 1.1.1を使いました
opensock()に3番目の引数タイムアウト(秒)を入れました

バッファオーバーランは地雷を埋めるようなもので
さわらなければ何も起きない
地雷にふれたときに異常が起こる
aragowは適宜再起動を要するものなのか・・

aragowが落ちるのをprg側で対応するのは難しいようで
昔Mishinaさんのカキコミもありました



mail002 送信について  投稿者:kourogi  投稿日:2018年10月6日(土)01時00分35秒 [48]
いつもありがとうございます。
正常診断の件
工夫してみます。

   投稿者:   投稿日:2018年10月4日(木)22時32分21秒 [47]
mail002.dllにバグ(文字化け)があり
なおしましたので新しいものを使ってください
件名はSET LANGUAGE TO JAPANESEで
1行18文字以内にしてください(文字化けします)

mail002.dllはメールサーバーと
通信するだけの機能で
220 msrg5031.rgserv.odn.ne.jp ESMTP Service ready
250-msrg5031.rgserv.odn.ne.jp
250-DSN
250-8BITMIME
250-PIPELINING
250-AUTH=LOGIN
250-AUTH LOGIN PLAIN
250 SIZE 20971520
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
235 LOGIN authentication successful
250 MAIL FROM:<xxx@xxx.ne.jp> OK
250 RCPT TO:<xxx@xxx.ne.jp> OK
354 Start mail input; end with <CRLF>.<CRLF>
250 <5B4E3E7101599E4D> Mail accepted
221 msrg5031.rgserv.odn.ne.jp QUIT
などとなれば正常です
メールサーバーは
架空のメールアドレスでも受け付けます
メールが届いたかどうかはわかりません


mail002 送信について  投稿者:kourogi  投稿日:2018年10月4日(木)00時25分57秒 [46]
過去ログを探したのですが、うまく探れません
質問です
メール正常送信は
何か返り値でエラー、送信不可を得ることができるのでしょうか
それとも、最後まで流れれば、正常送信されたということでいいのでしょうか。
送れたのか、自分の指定値ミスがあったのかが
不安なのですが、いかがでしょうか。
送信内容は、文字化けも一切なく
快調です。

mail002 送信について  投稿者:kourogi  投稿日:2018年9月20日(木)00時31分49秒 [45]
いつも、助けて頂いてありがとうございます。
さっそく使わさせていただきます。

EXTERN CDECL とする件も、
突然アラゴが落ちるのは、違うようです。

メモリの使用率をにらみながら、テストしていますが

タスクマネージャーでメモリが 32Mを超えると、危ういです。
また報告できるようであれば、別件で書き込みます。




 投稿者:  投稿日:2018年9月19日(水)22時26分51秒 [44]
mail001.dllとmail002.dllをなおしましたが・・
メール送信において
長い件名(日本語で25文字を超えるくらい)の場合
iso-2022-jpで
prgでは
漢字INあいう・・・漢字OUT漢字INかきく・・・漢字OUT
と漢字OUT漢字INが連続するところがあります
Windows Live メールでも同じです
本文で
prgでは
漢字OUT漢字INが連続するところがあります
Windows Live メールでは
漢字OUT漢字INが連続するところがありません

漢字OUT漢字INの連続を処理しないメーラーで
prgでは文字化けするのかもしれません
そのメーラーでは
Windows Live メールでiso-2022-jpで送信した
長い件名のメールも文字化けするはずですが・・

この際
iso-2022-jp
に別れを告げて
utf-8
を使いましょう
Windows Live メールに準じて
件名を1行23文字としました


mail002 送信について  投稿者:kourogi  投稿日:2018年9月19日(水)14時45分45秒 [43]
ありがとうございます。
携帯でもマーク出なくなりました。

文字化けのお客様へのメールも
ご協力いただいて、再度同じメールを送信したところ
正常でした。

これで、個別にメールソフト使わずに
自動返信が開始されました。
劇的に楽です。
ありがとうございました。

 投稿者:  投稿日:2018年9月18日(火)13時06分45秒 [42]
prgで
iso-2022-jpで送信したときに
(こちらは半角カタカナは全角カタカナに内部で強制的に変換している)
受信するメーラーによっては文字化けする件
原因がわかりました
mail001.dllとmail002.dllをなおしますので
すこし待ってください

utf-8での送信でよければ
とりあえず
sendmail4.prgかsendmail5.prgで
こちらは半角カタカナなども送れます


mail002 送信について  投稿者:kourogi  投稿日:2018年9月18日(火)11時05分57秒 [41]
ご対応ありがとうございます。
試してみます。
一人のお客様から文字化けしていますと
連絡がありました、
パソコンで受けたメールのようです。

左目がアメーバとかいう病気になってしまい
静かにしていました。
折角のご連絡、拝見が遅れまして
申し訳ございません。

 投稿者:  投稿日:2018年9月17日(月)07時46分02秒 [40]
Windows Live メールに合わせて
件名を
utf-8?B
で
本文を
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
で送る
SMTP over SSLのsendmail4.prg
と
SMTP STARTTLSのsendmail5.prg
を作りました
半角カタカナなどもok


 投稿者:  投稿日:2018年9月15日(土)09時24分40秒 [39]
昔はiso-2022-jpだけでよかった
最近のメールのソースをみると
件名
iso-2022-jp?B?
UTF-8?B?
Shift_JIS?B?
本文
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
Content-Type: text/html; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=Shift_JIS
Content-Transfer-Encoding: base64
などがありました
携帯はUTF-8ですから
これからは
prgでメールを送信する場合は
件名も本文もUTF-8にしたほうがいいようです
prgでメールを受信する場合は
件名が
iso-2022-jp?B?
UTF-8?B?
Shift_JIS?B?
の3とおり
本文が
Content-Type: text/plain
Content-Type: text/html
の2とおりと
charset="iso-2022-jp"
charset="utf-8"
charset=Shift_JIS
の3とおりと
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 8bit
Content-Transfer-Encoding: quoted-printable
Content-Transfer-Encoding: base64
の4とおり
に対応することになります


mail002 送信について  投稿者:kourogi  投稿日:2018年9月14日(金)23時39分01秒 [38]
タイトル11文字目のつぎにマークが出るのと
---->
12文字目でした。

mail002 送信について  投稿者:kourogi  投稿日:2018年9月14日(金)23時33分50秒 [37]
>“メモ帳で作った”テキストファイルでも
>マークが出るのか
今までの携帯メールでは同じマークが出ますが、
>②メーラーを変えて
>受信し確認する
でほかのパソコンメーラーでは出ませんでした。

6つ前で「解決しました」と掲示板の書き込みをしたように
ヤフーメールアドレスだと問題なかったというのは
ヤフーのサーバーならOKではなくて、ヤフーのメーラーで受けたからマークが出なかったようです。

したがって、携帯用のメーラーで受けた時だけ
タイトル11文字目のつぎにマークが出るのと、
本文にランダムに出ますが、
ほかのメーラーでは出ないので、自分の携帯メーラーの原因です。

お騒がせいたしました、このまま実用に顧客に流してみましたが
今のところ、障害の連絡はありません。
ありがとうございました。

 投稿者:  投稿日:2018年9月14日(金)20時11分19秒 [36]
“メモ帳で作った”テキストファイルでも
マークが出るのか
マークが出る“送信するテキストファイル”を
バイナリエディタで開いて
“余分なコード”があるのかどうか
などでしょうか


mail002 送信について  投稿者:kourogi  投稿日:2018年9月14日(金)19時09分52秒 [35]
>件名でなのか
>本文でなのか
>どちらでもなのか・・
どちらもです。
本文は12文字ごとではありません。

>①prgとWindows Live メールなどで
>送信し確認する
メモ帳で送信するテキストファイルを開いて
Ctrl+cでコピーして
WINDOWS10の標準のメールソフトで
Ctrl+Vで張り付けて
送信したところ
マークは出ませんでした。

>③サーバーを変えて
>送信し確認する
送信先を変えて、ヤフーにしたところ、マークは出ませんでした。

>②メーラーを変えて
>受信し確認する
テストできましたら報告します。

 投稿者:  投稿日:2018年9月11日(火)07時35分20秒 [34]
話が件名になってきています
最初のカキコミに“タイトルにも出ます”
とありますが
この問題は
件名でなのか
本文でなのか
どちらでもなのか・・

同じメールを
①prgとWindows Live メールなどで
送信し確認する
②メーラーを変えて
受信し確認する
③サーバーを変えて
送信し確認する
などでどこに問題があるのか
わかりませんか?
だだ“③サーバーに問題がある”
はありえないと思いますが・・


mail002 送信について  投稿者:kourogi  投稿日:2018年9月10日(月)23時14分08秒 [33]
chr(9) -- chr(32)は結果は同じでしたが
件名12文字ですと、マークは出現しません。
12文字以上は送れないのでしょうか

 投稿者:  投稿日:2018年9月9日(日)23時23分15秒 [32]
以前のカキコミのとおり

件名の送信は
“MIMEの規定通りにSET LANGUAGE TO JAPANESEで12文字以下に設定しなおしてください”
SET LANGUAGE TO JAPANESE
if len(Subject01)<=12
else

また
sendssl(ssl,CHR(9))
とタブで区切って送信していますが
sendssl(ssl,CHR(32))
とスペースで区切って送信すると
どうですか?


SMTP over SSLの場合はsendmail2.prg
SMTP STARTTLSの場合はsendmail3.prg
を再ダウンロードして試してください


mail002 送信について  投稿者:kourogi  投稿日:2018年9月9日(日)22時40分17秒 [31]
解決しました!
メールサーバーを変えたら解決しました。
ヤフーメールに変えたら出ませんでした。
でも現在契約サーバーだと、必ず出ます。

もう少しテストしてみます。

mail002 送信について  投稿者:kourogi  投稿日:2018年9月9日(日)22時13分24秒 [30]
変な文字はFPUTで作っていない件名にも出ます。
q_S='●商品確保ご連絡●シャルル@ビスコンティから出荷準備のお知らせ'
のタイトルで件名をセットして送信すると
'●商品確保ご連絡●シャル◆ル@ビスコンティから出荷◆準備のお知らせ'
になって受信されます。実際には上記すべてのひし形のなかに?があるマークで
同じ物が数か所に入ります。
上記件名の場合、入り込む場所は同じです。
テキストが同じものを送信した場合、同じ位置に入ります。
文末などではなく、1つの繋がったテキストの中です。
メモ帳で作ってテストしてみます。


 投稿者:  投稿日:2018年9月8日(土)15時01分14秒 [29]
ARAGOのFPUTS()で作ったテキストファイルに
余分なコードが入っているのでしょう

メモ帳で作ったテキストファイル
ではどうですか?
FPUTS()を
FWRITE()で文字+chr(13)+chr(10)
とするとどうですか?


mail002.dllについて  投稿者:kourogi  投稿日:2018年9月8日(土)14時07分17秒 [28]
mail002.dllを使って、ARAGOのFPUT関数などで作ったテキストファイルを送信するのですが、元のファイル内にはないマークが、送信されると必ず出ます。
そのテキストマークは菱形の中に?マークが白抜き文字のあるマークで、その出現間隔は不規則で、文章途中に数か所でます。
タイトルにも出ます。そのマークを無視して飛ばして読めば伝わるのですが
何が原因か、同じような現象の方はいらっしゃいませんか。

mail001 受信について  投稿者:kourogi  投稿日:2018年9月2日(日)22時09分03秒 [27]
xさんいつもお世話になります。
いぜんから問題なくWIN10でも使っているmail001.dllですが
現在受信用にMAIL001、送信用に002を組み込みました。
そういう使い方でいいのでしょうか。
 

mail002.dllについて  投稿者:x  投稿日:2018年9月1日(土)07時52分32秒 [26]
自分でビルドする方は問題ないと思いますが
mail002.dllのOpenSSLのバージョンが古く
ほとんど使えないので
新しいOpenSSLでリビルドしました
新しいmail002.dllを使ってください
http://www2.odn.ne.jp/merrybelleにおいてある
他のdllも随時修正しています


mail002 送信について  投稿者:kourogi  投稿日:2018年8月28日(火)12時12分37秒 [25]
mail002.prg  ->  sendmail2.prg 
でした

mail002 送信について  投稿者:kourogi  投稿日:2018年8月28日(火)11時35分19秒 [24]
mail002.prg  ->  sendmail2.prg 
でした

mail002 送信について  投稿者:kourogi  投稿日:2018年8月28日(火)11時33分27秒 [23]
ありがとうございます!
いとも簡単に、あっさり、送信OK、メールも届きました。完璧です。
さっそく自動返信プログラムに組み込みます。
以前数年前にmail001を利用さえていただいておりましたが
受信はうまく使いこなせていたのですが、送信ができず
メールソフトで返信していました。

お名前がないので、どなたか存じませんが
大変ありがとうございました。
mail002.prg
は どこが違うのでしょう
認証方式?でしょうか

 投稿者:  投稿日:2018年8月27日(月)20時18分26秒 [22]
ポート465と書いてあるので
sendmail2.prg
ではどうですか?

mail002 送信について  投稿者:kourogi  投稿日:2018年8月27日(月)18時52分30秒 [21]
補足です
過去ログに従って
mail002をsendmail3.prg
のサンプルプログラムでも試しましたが、同じ結果でした

mail001 送信について  投稿者:kourogikun  投稿日:2018年8月27日(月)18時36分28秒 [20]
mail001.dllの送信サンプルを使っての質問です。
SMTPサーバー名を入れ、ポート465、
認証をパスワードともに入れて、送信テストしたところ、
正常終了しますがメールが送られてきません。
どのようなチェックを試みると良いのでしょうか。

かなりお久しぶりです  投稿者:kourogi  投稿日:2018年8月18日(土)23時26分45秒 [19]
現役で頑張っています。店舗は6店から2店舗に減って、それでもアラゴPOSレジで、WIN10にして頑張っています。昨年より通販を始めてPOSレジの機能に機能を追加しています。xさんに作って頂いたdirectprn001.dll,
あれはほんとに大幅にシステムが改善され、今でも活躍しています。ありがとうございました。
現在通販の機能で以前作られたPOP3メール送受信のdllを追加する計画で、ここの掲示板のURLが見つかったので、読ませていただいています。
EXTERN CDECL の件、ありがとうございます。
さっそく試します。
大変知識が弱いので、正しいかわかりませんが、下記の例ように EXTERN と CINT などの間にCDECLを挿入すると考えればいいでしょうか。
試してみます。


http001.dll encode001.dll  投稿者:マルちゃん  投稿日:2018年7月4日(水)08時48分22秒 [18]
色々アドバイス有難うございます。
xさんのDLLは幅広い活用が期待できます。
今後も利用させて頂きますのでよろしくお願い致します。

http001.dllについて  投稿者:x  投稿日:2018年6月30日(土)08時42分25秒 [17]
*sample.prg(aragowで実行します)
*http001.dllを使います
*テキストファイルを受信する場合
EXTERN CDECL CINT opensock(CSTRING,CINT) http001.dll
EXTERN CDECL CINT sendsock(CINT,CSTRING) http001.dll
EXTERN CDECL CINT recvsockoneline(CINT,CSTRING) http001.dll
*4番目の引数はタイムアウト(秒)です
EXTERN CDECL CLONG recvsockfile(CINT,CSTRING,CLONG,CINT) http001.dll
EXTERN CDECL CINT closesock(CINT) http001.dll

EXTERN CDECL CSTRING shift_to_utf(CSTRING,CSTRING) encode001.dll
EXTERN CDECL CSTRING utf_to_shift(CSTRING,CSTRING) encode001.dll
EXTERN CDECL CSTRING urlencodeutf(CSTRING,CSTRING) encode001.dll
EXTERN CDECL CSTRING urldecode(CSTRING,CSTRING) encode001.dll

STORE 'merrybelle.sub.jp' TO domain01
STORE 'http://merrybelle.sub.jp/test.html' TO download01
store urlencodeutf(shift_to_utf(download01,space(200)),space(200)) to download01

set talk off
set language to american
set compatible off
clear
f01=fcreate('d:\temp\test.txt',0)
DO download
fclose(f01)  &&fcreateしたら必ずfcloseする

PROCEDURE download
	stor opensock(domain01,80) to sock
	IF sock>0
		sendsock(sock,'GET '+download01+' HTTP/1.0'+CHR(10))
		sendsock(sock,CHR(10))
		STORE 0 TO length01
		do while .t.
			STORE SPACE(1000) TO string01
			STORE recvsockoneline(sock,string01) TO n
			if n<=0
				exit
			endi
*		            ? subs(string01,1,n)
			IF n>15
				IF SUBSTR(string01,1,15)='Content-Length:'
					STORE VAL(SUBSTR(string01,16,n-15)) TO length01
				endi
			endi
		endd
		if n>=0
			store 0 to n01
			do while .t.
				STORE SPACE(1000) TO string01
				STORE recvsockoneline(sock,string01) TO n
				if n<0
					exit
				endi
				store n01+n To n01
*	? utf_to_shift(subs(string01,1,n),space(200)) &&文字コードがUTF-8の場合
				? subs(string01,1,n)
				fwrite(f01,subs(string01,1,n)+chr(13)+chr(10))
			endd
		endi
		closesock(sock)
	ENDIF
RETURN

encode001.dllについて  投稿者:x  投稿日:2018年6月23日(土)13時31分09秒 [16]
encode001.dllのアクティブ化コンテキストの生成に失敗しました
となる場合はsystemのdllが足りないので
無償版のVisual C++ 2008 Express Editionなど
をインストールしてみてください

 投稿者:x  投稿日:2018年6月23日(土)13時26分19秒 [15]
スパム対策で
英語のみのメッセージとロシア語のメッセージ
おなまえと削除キーが同一の場合
管理用に入力がある場合
は投稿できません

テスト  投稿者:マルちゃん  投稿日:2018年6月22日(金)15時05分53秒 [14]
テストです

ありがとうございます  投稿者:yama5656(山縣)  投稿日:2017年12月26日(火)15時01分16秒 [13]
&1さんに誘導されてたどり着きました
早速、学習させていただきます
ホームばっかりチェックしていてこの掲示板には気が付きませんでした
ありがとうございます

引退の文字が見えますが小生も後期高齢者になり身辺の整理を少しづつ
進めています....あと25年は生きるつもりです...これから薬をもらいに医者に行きます


 投稿者:x  投稿日:2017年11月2日(木)22時30分47秒 [12]
*RE[3]:.xlsxファイルをテキストファイルに自動変換
*下記でどうでしょう
*excelcsv.prg
*excelcli101.dll
*excelcs101.dll
*の2個のdllをARAGOPRO.EXEのフォルダに置く
*エクセルがインストールされている
EXTERN CDECL CINT opnexcel(CINT) excelcli101.dll &&excel.exeを開く 0は非表示 1は表示
EXTERN CDECL CINT opnbook(CSTRING) excelcli101.dll
EXTERN CDECL CINT savebook(CSTRING) excelcli101.dll
EXTERN CDECL CINT savebooku(CSTRING) excelcli101.dll &&Excel2016でUTF-8のCSVファイルがサポート
EXTERN CDECL CINT clsbook(CVOID) excelcli101.dll &&xlsxファイルを閉じる
EXTERN CDECL CINT clsexcel(CVOID) excelcli101.dll &&excel.exeを閉じる
store 'D:\temp\test.xlsx' to file1
store 'D:\temp1\test.csv' to file2
*store 'D:\temp1\test.pdf' to file2
*store 'D:\temp1\test.xlsx' to file2
store opnexcel(1) to temp
? temp
if temp <> 0
	return
endi
store opnbook( file1) to temp
? temp
if temp <> 0
	clsexcel()
	return
endi
? savebook( file2)
clsbook()
clsexcel()


 投稿者:x  投稿日:2017年10月21日(土)17時18分14秒 [11]
*表示印刷がxlsxファイル(SHIFT-JISでもユニコードでも入ります)になりますが・・
*(ClosedXMLを使うexcel003u.prgのほうが速い)
*Unicode文字入りのD:\temp\data.xlsxをつくり
*excel004u.prg
*excelcli101.dll
*excelcs101.dll
*の2個のdllをARAGOPRO.EXEのフォルダに置く
*エクセルがインストールされている
EXTERN CDECL CINT opnexcel(CINT) excelcli101.dll
EXTERN CDECL CINT opnbook(CSTRING) excelcli101.dll
EXTERN CDECL CINT opnsheet(CSTRING) excelcli101.dll
EXTERN CDECL CSTRING rcell(CINT,CINT,CSTRING) excelcli101.dll
EXTERN CDECL CSTRING rcellu(CINT,CINT,CSTRING) excelcli101.dll
EXTERN CDECL CINT wcellstr(CINT,CINT,CSTRING) excelcli101.dll
EXTERN CDECL CINT wcellstru(CINT,CINT,CSTRING) excelcli101.dll
EXTERN CDECL CINT savebook(CSTRING) excelcli101.dll
EXTERN CDECL CINT clssheet(CVOID) excelcli101.dll
EXTERN CDECL CINT clsbook(CVOID) excelcli101.dll
EXTERN CDECL CINT clsexcel(CVOID) excelcli101.dll
set talk off
clea
store opnexcel(1) to temp
? temp
if temp <> 0
	return
endi
store opnbook('D:\temp\data.xlsx') to temp
? temp
if temp <> 0
	clsexcel()
	return
endi
? opnsheet('sheet1')
store ltrim(rcellu(1,1,space(100))) to utf01
? utf01
clssheet()
clsbook()
store opnbook('D:\temp\test.xlsx') to temp
? temp
if temp <> 0
	clsexcel()
	return
endi
? opnsheet('sheet1')
wcellstru(10,1,utf01)
? savebook('D:\temp\test.xlsx')
clssheet()
clsbook()
clsexcel()
run c:\program files (x86)\microsoft office\root\office16\excel.exe d:\temp\test.xlsx


 投稿者:x  投稿日:2017年8月4日(金)12時51分05秒 [10]
だれでもいつかは引退ですね
私は新聞の詰碁詰将棋などで楽しんでいます
いまさらですがむかしinabaさんが
C#でdll・・
Aragoでそのdllが呼べる?
の件ですがラッパーdll経由で
Aragoで呼べます


僕も引退  投稿者:inaba  投稿日:2017年8月4日(金)11時46分37秒 [9]
xさん、ごぶさたです。DBUSERの掲示板でのご活躍、拝見していました。

>私のdllを呼ぶときはEXTERN CDECLを使ってください
>kourogiさんinabaさん
>もしここのdllを使っていましたら
>EXTERNをEXTERN CDECLとなおしてください
了解しました。
最近、めっきりaragoを使う機会がなくなりました。もう、化石みたいな状態です。

 投稿者:x  投稿日:2017年7月15日(土)09時43分10秒 [8]
自分でビルドする方へ(追加)
hellocli.dllのビルドでは前記に加えて
プロジェクト hellocliのプロパティ
構成プロパティ
構成 Debug
全般 文字セット マルチバイト文字セットを使用する
全般 共通言語ランタイム サポート 共通言語ランタイム サポート (/clr)
C/C++ コード生成 ランタイム ライブラリ マルチスレッド デバッグ DLL (/MDd)
適用
構成 Release
全般 文字セット マルチバイト文字セットを使用する
全般 共通言語ランタイム サポート 共通言語ランタイム サポート (/clr)
C/C++ コード生成 ランタイム ライブラリ マルチスレッド DLL (/MD)
適用
共通プロパティ
新しい参照の追加
参照
hellocs.dllを追加する
適用
とする


 投稿者:x  投稿日:2017年6月1日(木)13時36分49秒 [7]
自分でビルドする方へ
Microsoft Visual Studio 2008を起動する
ファイル 新規作成 プロジェクト
Visual C++ Win32 Win32コンソールアプリケーション
プロジェクト名 例keybd001
場所 例d:\c++
ソリューション名 例keybd001
OK
次へ
DLL
空のプロジェクトをチェック
完了
プロジェクト 新しい項目の追加
Visual C++ コード
C++ ファイル
ファイル名 例keybd001
追加
keybd001.cppをコピペする
プロジェクト keybd001 のプロパティ
構成プロパティ
構成 Debug
全般 文字セット マルチバイト文字セットを使用する
C/C++ コード生成 ランタイム ライブラリ マルチスレッド デバッグ (/MTd)
適用
構成 Release
全般 文字セット マルチバイト文字セットを使用する
C/C++ コード生成 ランタイム ライブラリ マルチスレッド (/MT)
適用
リンカ 全般 インクリメンタルリンクを行わない
OK
ビルド バッチ ビルド すべて選択 リビルド
エラー 0、警告 0 警告があっても動作するが理解の上で使用すること
2 正常終了、0 失敗、0 スキップ
D:\c++\keybd001\Releaseにkeybd001.dllがビルドされる


 投稿者:x  投稿日:2017年5月25日(木)08時23分33秒 [6]
スパム対策で
英語のみのメッセージとロシア語のメッセージ
は投稿できません


 投稿者:x  投稿日:2017年3月4日(土)11時53分36秒 [5]
aragowのEXTERN[CDECL]コマンドの使い方についてですが
EXTERN CDECLとするとcdecl規約となるようで自作のdllなどを呼ぶときには
EXTERN CDECLを使う
EXTERNとするとstdcall規約となるようでWindows APIなどを呼ぶときには
EXTERNを使う
のようです

私のdllを呼ぶときはEXTERN CDECLを使ってください
(スタックポインタがずれてaragowが落ちると思います)
以前にkourogiさんが“11時間使って、1~2度ほど落ちます”といっていましたが
これも原因のひとつなのかもしれません
kourogiさんinabaさん
もしここのdllを使っていましたら
EXTERNをEXTERN CDECLとなおしてください
もうしわけありません


 投稿者:x  投稿日:2017年2月5日(日)18時47分47秒 [4]
xlsxファイルの読み書きdll

(1)com経由
ClosedXMLとcomコンポーネントによる
excel001.dll excelcom001.dll サンプル excel001.prg calendar.prg
ClosedXML.dll
DocumentFormat.OpenXml.dll(microsoft)

excel.exeとcomコンポーネントによる
excel101.dll excelcom101.dll サンプル excel002.prg calendar1.prg
Interop.Microsoft.Office.Interop.Excel.dll(microsoft)

(2)C++/CLI経由
速い
レジストリへの登録不要
dllをARAGOPRO.EXEと同じフォルダ置く

ClosedXMLとC++/CLIによる
excelcli001.dll excelcs001.dll サンプル excel003.prg calendar2.prg
ClosedXML.dll

excel.exeとC++/CLIによる
excelcli101.dll excelcs101.dll サンプル excel004.prg calendar3.prg

 投稿者:x  投稿日:2017年1月3日(火)22時30分07秒 [3]
xlsxファイルの読み書きdll

xlsxファイルカレンダーのサンプル

(1)
ClosedXMLを使う
1秒かからない
読み書きだけで印刷はできない
動作は
aragow→excel001.dll(c++のdll)→excelcom001.dll(c#のdll)
→ClosedXML.dll→DocumentFormat.OpenXml.dll
です
ClosedXML.dll
DocumentFormat.OpenXml.dll(microsoft)
excel001.dll
excelcom001.dll
の4個のdll+calendar.prgをprgのフォルダに置く
コマンドプロンプト管理者として実行するで
RegAsm.exe excelcom001.dll /codebase
としてexcelcom001.dllをレジストリに登録する
もし"excelcom001.excelcom001"と同じ名前が登録されている場合は上書きされるので注意する
エクセルなしでいい

(2)
excel.exeを使う
遅い
印刷ができる
エラーのときexcel.exeのプロセスが残るのでタスクマネージャーで削除する
動作は
aragow→excel101.dll(c++のdll)→excelcom101.dll(c#のdll)
→excel.exe
です
Interop.Microsoft.Office.Interop.Excel.dll(microsoft)
excel101.dll
excelcom101.dll
の3個のdll+calendar1.prgをprgのフォルダに置く
コマンドプロンプト管理者として実行するで
RegAsm.exe excelcom101.dll /codebase
としてexcelcom101.dllをレジストリに登録する
もし"excelcom101.excelcom101"と同じ名前が登録されている場合は上書きされるので注意する
エクセルがインストールされている



 2017年 



 投稿者:x  投稿日:2016年12月25日(日)09時34分36秒 [2]
書き込みありがとうございます
書き込みの年は?は
前の掲示板はODNのホームページサービスのもので投稿の年の表示設定ができないようです
この掲示板はPHP+MySQLで作りました

ODN 30MB 月額料金 500円
lolipop PHP+MySQL 50GB 月額料金 250円
かたやメガバイト
かたやギガバイト


 投稿者:x  投稿日:2016年12月25日(日)09時30分46秒 [1]
過去の書き込みは下記に移しました

https://merrybelle.sub.jp/merrybelle/boardcgi.htm


☆☆☆ merrybelleの掲示板 ☆☆☆

皆さん、お気軽に書き込んでください。

前ページ


書き込みの年は?  投稿者:引退した人  投稿日:12月09日(金)10時30分10秒 [13]
DBXL掲示板から検索してたどり着きました。
xさんはやっぱりすごい方ですね。
初めてこちらへお邪魔しましたが、投稿の年はわざわざ表示していないのですか。

過去の分、ななめ読みしていたらいつのかわからなかったです。

 投稿者:x  投稿日:10月29日(土)08時54分42秒 [12]
charset=UTF-8に対応したpop30.prgとpop30ex.prgを作りました


 投稿者:  投稿日:10月16日(日)14時14分38秒 [9]
SMTP over SSLの場合はsendmail2.prg、SMTP STARTTLSの場合はsendmail3.prgで
暗号化通信用にmeil002.dllを使います


sendmailとpop3とpop3exのテスト  投稿者:inaba  投稿日:10月16日(日)08時07分15秒 [8]
以前のmail001を「認証なし」に特化して「認証あり」をmail002にしたという理解でOKですか?
mail001.dllを使ったsendmail(SMTP認証なし)は期待通りでした。mail002の方は環境を「認証なし」にしてますのでテストしてません。
mail001.dllを使ったpop3.prgでは接続はできますが、「if quoted=0」のところでエラー(変数未定義)が出ました。「if mail01>0」行の下に「quote=0」を入れたら成功しましたが、「quote=1」でも同じ結果でした。
また添付ファイルは本文の最後にエンコード?したような、ないような表記が・・。内容は以下のpop3exと同じです。
pop3ex.prgでは、添付ファイル(プレインテキスト)はダウンロードできましたが、本文の最後にやはり以下のように・・。
---- ここから -----
--*a*2*s*5*d*8*
Content-Type: application/octet-stream; name=hoge.prg
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=hoge.prg
KoOBgVuDi5GXkE1TTVRQlEaP2ILIgrWCxVBPUCBiZWZvcmUgU01UUILMj+qNhw0KKpbAmGaDgYFb
---- 以下省略 --
という結果でした。

mail002  投稿者:inaba  投稿日:10月16日(日)05時52分39秒 [7]
おはようございます。
手動でダウンロードできました。これからゆっくり試してみます。
ワクワクします。

 投稿者:x  投稿日:10月15日(土)11時09分19秒 [6]
例http://www2.odn.ne.jp/merrybelle/mail002.dll
としてみたら
Nortonが
WS.Reputation.1
安全ではないので削除しましたと・・・
そうなのかぁ


 投稿者:x  投稿日:10月15日(土)10時27分43秒 [4]
月日の過ぎるのが早いです年のせい・・・
mail002.cpp
mail002.rc
mail002.dll
sendmail2.prg
sendmail3.prg
などは手動で
例http://www2.odn.ne.jp/merrybelle/mail002.dll
としてください
OpenSSLライブラリを使っています


mail002.dll?  投稿者:inaba  投稿日:10月15日(土)07時19分57秒 [3]
xさん、お久しぶりです。xさんがユーザーグループの掲示板への書き込まれた少し前から過去ログなど見させていただいてました。
フィックス以前のhttp001.dllも再度テストしてみたりしてましたが、期待どおり動いてくれてました。新しいバージョンもちゃんと動きますが・・。
ところで、mail002.dllってどこにあるのでしょう? これまでもなかったような・・。

 投稿者:x  投稿日:10月12日(水)18時00分07秒 [2]
http001.dll
mail001.dll
mail002.dll
にバグがありなおしました



 2016年 



 投稿者:x  投稿日:12月31日(木)02時51分22秒 [1]
過去の書き込みは下記に移しました

https://merrybelle.sub.jp/merrybelle/boardcgi.htm


☆☆☆ merrybelleの掲示板 ☆☆☆

皆さん、お気軽に書き込んでください。

前ページ


 投稿者:x  投稿日:01月17日(土)21時52分50秒 [13]
自分でビルドする方へ
Microsoft Visual Studio 2008を起動する
ファイル 新規作成 プロジェクト
Visual C++ Win32 Win32コンソールアプリケーション
プロジェクト名 例keybd001
場所 例d:\c++
ソリューション名 例keybd001
OK
次へ
DLL
空のプロジェクトをチェック
完了
プロジェクト 新しい項目の追加
Visual C++ コード
C++ ファイル
ファイル名 例keybd001
追加
keybd001.cppをコピペする
プロジェクト keybd001 のプロパティ
構成プロパティ
構成 Debug
全般 文字セット マルチバイト文字セットを使用する
C/C++ コード生成 ランタイム ライブラリ マルチスレッド デバッグ (/MTd)
適用
構成 Release
全般 文字セット マルチバイト文字セットを使用する
C/C++ コード生成 ランタイム ライブラリ マルチスレッド (/MT)
適用
リンカ 全般 インクリメンタルリンクを行わない
OK
ビルド バッチ ビルド すべて選択 リビルド
エラー 0、警告 0 警告があっても動作するが理解の上で使用すること
2 正常終了、0 失敗、0 スキップ
D:\c++\keybd001\Releaseにkeybd001.dllがビルドされる

 投稿者:x  投稿日:01月13日(火)12時48分49秒 [12]
件名の文字数を根拠もなく25文字以下に設定していましたが“あaあaあaあaあaあaあaあaあaあa”という件名でテストしましたところ13文字以上でエラーとなりましたMIMEの規定通りにSET LANGUAGE TO JAPANESEで12文字以下に設定しなおしてください

mail送信変更完了  投稿者:noda  投稿日:01月13日(火)12時39分52秒 [11]
色々とサポートして頂き誠にありがとうございます。
ある程度テストも終了したので、本番環境に組み込みます。
これで従来からのメールサーバー切り替えが実施できます。

感謝いたします。

 投稿者:x  投稿日:01月12日(月)17時39分24秒 [10]
書き込みありがとうございます
ご指摘のとおり“Subject の25文字以上入れるとカットされる”はバグです
長い件名はタブで区切って送信するのですがそのタブが抜けていました
prgなおしました

助かりました  投稿者:noda  投稿日:01月12日(月)14時56分48秒 [9]
mail002.dll 再作成誠にありがとうございます。
新しいdllを使用しテスト行いました。
ついでに、to: 3箇所と cc: 2箇所 もソースに追加してテストしました。

問題なく動作しました。
メール送信エラーを確認するため、3箇所ぐらいリーターンコードも確認しエラーを返すようにしました。
後は、現行ソースに組み込み再テストします。

テストしてて気になったのは、Subject の25文字以上入れるとカットされることです。
現状問題ないので、時間のあるときに調べてみます。

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


 投稿者:x  投稿日:01月11日(日)23時03分19秒 [8]
mail001.dll,mail002.dllではcharset=ISO-2022-JPとしているので半角カタカナは全角カタカナに変換しています

 投稿者:x  投稿日:01月10日(土)23時58分27秒 [7]
sendmail2.prg,sendmail3.prg,mail002.dll変えました。
STORE SPACE(1000) TO string01
STORE recvssloneline(ssl,string01) TO n
? SUBSTR(string01,1,n)
のセットを適正に入れないとSSL_readによるブロッキングが起こります。

mail出来るようになりました。  投稿者:noda  投稿日:01月10日(土)16時44分51秒 [6]
誠にすいません、再テストしたらメール送信出来るようになりました。
後は、複数の送信先と、ccの対応が出来れば現行の置き換えが出来そうです。

もう少し色々使用してみて置き換えるようにします。

お手数お掛けしました。

メール送信テスト結果  投稿者:noda  投稿日:01月10日(土)14時21分11秒 [5]
早急な対応誠にありがとうございます。

テストを行ったところ次のようになりました。

sendmail3.prg
プロンプト
220 HK2PR01CA0026.outlook.office365.com Microsoft ESMTP MAIL Service ready at Sat, 10 Jan 2015 03:54:35 +0000
503 5.5.2 Send hello First


ssl前の認証がおかしそうなので、一部手直ししました。

sendmail3.prg 一部変更

EXTERN CINT sendjis(CINT,CSTRING) mail001.dll && 追加

IF sock>0
STORE SPACE(1000) TO string01
STORE recvsockoneline(sock,string01) TO n
? SUBSTR(string01,1,n)
* 追加
sendjis(sock,'HELO localhost'+CHR(13)+CHR(10))
STORE SPACE(1000) TO string01
STORE recvsockoneline(sock,string01) TO n
? SUBSTR(string01,1,n)

sendsock(sock,'STARTTLS'+CHR(13)+CHR(10))
STORE SPACE(1000) TO string01
STORE recvsockoneline(sock,string01) TO n
? SUBSTR(string01,1,n)
store openctx() to ctx
store openssl(sock,ctx) to ssl

プロンプト
220 SG2PR01CA0026.outlook.office365.com Microsoft ESMTP MAIL Service ready at Sat, 10 Jan 2015 04:43:35 +0000
250 SG2PR01CA0026.outlook.office365.com Hello [XXX.XXX.XX.XXX]
220 2.0.0 SMTP server ready
250 SG2PR01CA0026.outlook.office365.com Hello [XXX.XXX.XX.XXX]
334 VXNICM5HBWU6
334 UGFZC3DVCMQ6
235 2.7.0 Authenticatiob successful target host ...
250 2.1.0 Sender OK
250 2.1.5 Recipient OK
354 Start mail input; endwuth <CRLF>.<CRLF>

となります。
なんとなく送信できていそうですが送信されず。

違う認証メールサーバーで、sendmail.prg を使用してテスト
添付ファイルを指定すると送信でき、ない場合は送信できない?

以上がテスト結果です。
誠にすいません、ご指導お願いします。

 投稿者:x  投稿日:01月08日(木)20時55分44秒 [4]
SMTP over SSLの場合はsendmail2.prg、SMTP STARTTLSの場合はsendmail3.prgです。

 投稿者:x  投稿日:01月08日(木)14時51分01秒 [3]
sendmail2.prgとmail002.dllをダウンロードしメールアドレス、ID、パスワードなどを設定し試してください。mail002.dllは暫定です。

メール送信について  投稿者:noda  投稿日:01月06日(火)17時39分31秒 [2]
メール送信aragowサンプルmail001.dll についての質問です。

メール環境を、office365 に切り替えたためaragowからのメール送信が出来なくなりました。
mail001.dll を使用してテスト(smtp認証)したところ次のようなエラーとなりました。

220 HKNPR06C0054.outlook.office365.com Microsoft ESMTL MAIL Service ready .....
250 HKNPR06C0054.outlook.office365.com Hello [XXX.XXX.XXX.XXX]
500.5.7.4 Unrecognized authentication type
500.5.3.3 Unrecognized command

たぶん、暗号化の ssl/tls が starttls に対応してないためと思いますが、対応方法はありますか?

office365 は送信メールは次の指定となっています。
サーバーの種類 サーバー名    ポート 暗号化方法
送信   smtp smtp.office365.com 587 TLS

よろしくお願いします。



 2015年 



 投稿者:x  投稿日:09月23日(火)07時59分52秒 [1]
過去の書き込みは下記に移しました

https://merrybelle.sub.jp/merrybelle/boardcgi.htm


☆☆☆ merrybelleの掲示板 ☆☆☆

皆さん、お気軽に書き込んでください。

前ページ


vpn  投稿者:inaba  投稿日:05月24日(土)20時34分48秒 [111]
かなり以前、kourogiさんから教えていただいたsimousa+zeroremoteの技術。
どうしても実現できませんでしたが、やっとできました。
といっても、今回は、VPNは筑波大学のSoftEther、zeroremoteの代わりに
Brynhildr、つまり、 SoftEther+BrynhildrでようやくOK。
出先のPCから自宅のPCを自由に動かせました。

getphonetic  投稿者:inaba  投稿日:05月17日(金)19時51分54秒 [82]
どうやら、僕の推測はまったく的外れのようでした。
開発用WinXP に、2010C#をインストールしました。
推測では、getphonetic()は「半角カナ」を返すはず・・だったんですが、何と「全角かな」でした。
.NET Framework のバージョンは4、getphonetic()が「半角カナ」を返すEpsonのXPとまったく同じ。
どうやら.NET Framework 以外の「何か」に原因がありそうです。
IMEのバージョンかとも思い、データを以下に・・。
--
getphonetic()が「半角カナ」を返すEpsonのXPは
  IMEスタンダード2003 ver.9.0.5516.0
getphonetic()が「かな」を返す開発用のXP(ヒューレットパッカード)は
  IMEスタンダード2003 ver.9.0.8164.0
--
でした。
前便、誤解を招きそうなので、削除します。

 投稿者:x  投稿日:05月15日(水)22時46分44秒 [80]
“もうaragoはあきらめ・・・”C#へ(^^;)です

c#で?  投稿者:inaba  投稿日:05月15日(水)22時08分26秒 [79]
>囲碁五段ですから認知症は大丈夫かと
よぼよぼですから・・。

>WinXP Service Pack 3で全角ひらがなを返しましたですか・・・わからないです
OSではなく、「.NET Framework」のバージョンに依存しているような気がします。くだんのヒューレットパッカードXP(2年前までは僕の開発マシン)、マイクロソフトの古いVSが入っています。
>hantozen001.dllは
>・・・
>を除いてコンパイルすれば何も入っていないXPでも動くと思います
副作用は出ないでしょうか?

>たいへんかもしれないですがC#がいいかと
え? C#でdll作れってことですか?
Aragoでそのdllが呼べる?

ご報告  投稿者:inaba  投稿日:05月15日(水)21時51分54秒 [78]
今日、EpsonのXP(SP3)(お世話になっている囲碁センターにあるんです)に、「.NET Framework 4」をインストールして、試しました。
結果は、あいかわらず「hantozen001.dllはロードできません」のご宣託。
そこで、2010c#をインストールしてみましたら、Win7と同じ動きをしました。
つまり、「etphoneticが半角カナを返しました」。
最初に「.NET Framework 4」をインストールしたあとは、
あまりさだかではありませんが、
「.NET Framework 4 Client Profile」と「.NET Framework 4 Extended」が入っていた・・ような気がします。
C#をインストールした後は、
「.NET Framework 4 Multi-Targetting Pack」が追加されました。
なので、ユーザーには、「.NET Framework 4 Multi-Targetting Pack」をインストールしてください、と言えばOKなんでしょうが、普通のユーザーにはちょっとハードルが高いような気がします。
もう少し、テストしてみます。

 投稿者:x  投稿日:05月15日(水)21時15分39秒 [77]
囲碁五段ですから認知症は大丈夫かと
WinXP Service Pack 3で全角ひらがなを返しましたですか・・・わからないです
hantozen001.dllは
__declspec(dllexport) char * kanji_to_kana(char * string01,char * string02);
//kanji_to_kanaで毎回openとcloseを繰り返さないようにopenとcloseを分けたものすこし速くなる
__declspec(dllexport) long openife(void);
__declspec(dllexport) char * getife(long ife01,char * string01,char * string02);
__declspec(dllexport) void closeife(long ife01);
を除いてコンパイルすれば何も入っていないXPでも動くと思います
でもたいへんかもしれないですがC#がいいかと

認知症?  投稿者:inaba  投稿日:05月15日(水)07時41分49秒 [76]
>> hantozen001.dllは以前にkourogiさんの書き込みでxpにC++2010
xさん、過去ログでみつけました。
--
kourogi-->>.NET Framework 4
inaba-->>Win98SE2+arago4.5ではkourogiさんと同じエラーでした。
--
自分で書いていて何も記憶がありません。歳のせいかな。

お手数でした  投稿者:inaba  投稿日:05月14日(火)20時35分13秒 [75]
xさん、ありがとうございます。
>Windows XP Service Pack 1の場合全角ひらがな
全角ひらがなになったヒューレットパッカードのWinXPはService Pack 3、Win7の前に開発用に使っていたPCでしたので、MSのC++なども入れてあります。
>hantozen001.dllは以前にkourogiさんの書き込みでxpにC++2010の無料版をインストールしたところ動作しましたとありました
そういえば・・。過去ログ、見てみます。ありがとうございます。
MFCとか、ドットネットフレイムワークとかの関係ですかね?
しかし、Win7で半角カナを返すってのも???
Win7+arago6.7では、os()の返り値はemptyでしたし、汎用ソフトに実装するのは難しいかもしれませんね。
もうaragoはあきらめでしょうか・・。

 投稿者:x  投稿日:05月14日(火)12時09分13秒 [74]
ImmGetCompositionStringはWindows XP Service Pack 1の場合全角ひらがなで取得されますとありました
hantozen001.dllは以前にkourogiさんの書き込みでxpにC++2010の無料版をインストールしたところ動作しましたとありました

getphonetic  投稿者:inaba  投稿日:05月13日(月)22時19分47秒 [73]
inabaです。
前々便での
>いつぞやの自動ルビふり機能を導入しようと思い・・
ですが、
ent1に漢字入力、ent2にルビという入力域を設け、「かな」「カナ」「半角カナ」を選んで自動ルビふり機能をつけました。
開発はWin97+arago6.7です。
これをWin7と2台のWinXP(最終バージョン)で試しましたら、
Win7は、getphoneticが半角カナを返しました。
ヒューレットパッカードのXPは、getphoneticが全角ひらがなを返しました。
EPSONのXPは、keybd001.dllは読み込めましたが、hantozen.dllはロードできませんでした。
どんなことが起こっているのかと・・。

すごいですね  投稿者:inaba  投稿日:02月14日(木)08時11分49秒 [69]
そうですか、xさん、囲碁を打たれるんですね。
>高校囲碁の選手だった若いかたと打ちましたどうも勝たせてくれたようでした
相当な実力なんでしょうね。びっくり。
僕は名前だけ五段ということで、実力は??です。

 投稿者:x  投稿日:02月13日(水)20時32分29秒 [68]
久しぶりです変わりないですがけっこうな歳になりました先日高校囲碁の選手だった若いかたと打ちましたどうも勝たせてくれたようでした

ご無沙汰してます  投稿者:inaba  投稿日:02月13日(水)18時49分07秒 [67]
xさん、お元気ですか?
以前作った汎用ソフトにバグがあって、いつぞやの自動ルビふり機能を導入しようと思い、久しぶりにやってきました。
以前の掲示板同様、なにやらめんどうな書き込みがありますね。
何が目的なのか、誰も書き込みを信用しないのに、本当に不思議です。
また少し復習させていただきます。


 2014年 



記事56 取り消しです。  投稿者:β  投稿日:10月02日(火)16時20分44秒 [57]
記事56書いてから、55番削除の方法分かりました。
今度は、その56番が削除キー登録しなかったためか、削除できなくなりました。
重ね重ね失礼しました。

gdi32.DLL不要でした。  投稿者:β  投稿日:10月02日(火)16時10分44秒 [56]
ページの下の方にプログラム事例があって分かりました。
直前の書込み取り消しです。
削除キーだけ入れても消えませんね。
失礼しました。


 2013年 



 投稿者:x  投稿日:03月27日(火)17時13分13秒 [54]
こんにちは
MySQLのほうは
*mysql001.dllとmysqlのbinにあるlibmysql.dllをprgのフォルダに置く
PostgreSQLのほうは
*postgres001.dllとpostgresqlのbinにあるlibpq.dll ssleay32.dll libeay32.dll libintl-8.dll libiconv-2.dllをprgのフォルダに置く
です
MySQLはライセンスがきついのでPostgreSQLにしましょう
SQLならばトランザクションもしっかりしているし言語もなんでも使えるしみんなでメジャー(^^)をめざしましょう

mysql001.dll がロードできません  投稿者:マルちゃん  投稿日:03月27日(火)13時54分53秒 [52]
お久しぶりです。質問のときしか書き込みせずすみません。

同じフォルダーにmysql001.dllとMySQL1.prgを置いて実行したのですが、mysql001.dllがロードできませんと出てしまいます。

mysql001.dllのサイズは42496バイトです。環境はXP-SP3 ARAGOWのバージョンは4.5です。メモリは1GB MySQL2.prgも同様です

 投稿者:x  投稿日:03月23日(金)07時34分50秒 [51]
PostgreSQLのインストール
dataフォルダはProgram Filesでない場所に設定する
vista homeの場合はそのままではインストールできないので下記のやり方でインストールする
コントロールパネルユーザーアカウントユーザーアカウント制御の有効化または無効化ユーザーアカウント制御(UAC)を使ってコンピュータの保護に役立たせるのチェックを外す
ユーザーアカウントpostgresを作成しパスワードを設定する(このパスワードはPostgresSQLでも使います)
ユーザーアカウントpostgresを作成できない場合は見えないところでユーザーアカウントpostgresがすでに作成されているのでコマンドプロンプトでnet user postgres /deleteとしてからProgram Filesのpostgresフォルダを削除し再起動してはじめからやる
コントロールパネルユーザーアカウントユーザーアカウント制御の有効化または無効化ユーザーアカウント制御(UAC)を使ってコンピュータの保護に役立たせるのチェックをいれる
インストール後ユーザーアカウントpostgresは削除可です

 投稿者:x  投稿日:03月09日(金)12時25分15秒 [50]
*arago+mysqlで郵便番号検索dllでやってみました瞬時に検索されます
googleみたいな検索もできる

 投稿者:x  投稿日:01月18日(水)13時11分09秒 [47]
encode001.dllのurldecode()にバッファオーバーランの危険がありなおしました他のdllもいろいろとこっそりなおしています

スペースを含むURLへの受け渡し  投稿者:マルちゃん  投稿日:01月06日(金)07時15分33秒 [46]
アドバイスありがとうございます。
やってみます。

 投稿者:x  投稿日:01月05日(木)19時13分26秒 [45]
*マルちゃんさんのHTMLを実行したらGETARG(2)に2001%81%602011%20%8F%A4%95i%82P.jpgが入りましたwmvdisp.prgを下記にして試してみてください
EXTERN CSTRING urldecode(CSTRING,CSTRING) encode001.dll
output('Content-type: text/html',2)
store space(200) to string02
output(urldecode(GETARG(2),string02))

スペースを含むURLへの受け渡し  投稿者:マルちゃん  投稿日:01月05日(木)16時52分54秒 [40]
おめでとうございます
本年も宜しくお願い致します

質問の時にしか投稿せず申し訳ありません

HTMLファイルに下記リンクを貼ってCGIを行いたいのですが
<A href="/cgi-bin/aragoi.exe?wmvdisp.prg+2001~2011 商品1.jpg" target="wmvtop">商品1</A>

この時の"2001~2011 商品1.jpg" をARAGOIで取得したいのですが
encode001.dllをつかって出来るのでしょうか?


 2012年 



 投稿者:x  投稿日:12月24日(土)22時31分38秒 [39]
それはたいへんですねこちらは相変わらずでやれていますが被災者にはメリーとかおめでとうとか言いづらいです

メリークリスマス  投稿者:inaba  投稿日:12月24日(土)12時20分20秒 [38]
merryで思い出しました。
イブですが、みなさん、merry christmas。
クリスマスにはふさわしくない話題ですみません。
LANの管理やオリジナルソフトを作成してきた事業所が大震災で半壊したうえ、台風15号で床上浸水し、手元不如意となって、小生も職を失いました。
みなさんは大丈夫ですか?

おひさしぶりです  投稿者:kourogi  投稿日:10月12日(水)19時16分16秒 [37]
みなさん、ご無事で何よりです。
他の言語に替えたくても、外注は高いし、
言語力無いし・・・トホホです。

overlayprn001.dll は 新作ですか ?

 投稿者:x  投稿日:10月05日(水)00時03分59秒 [36]
inabaさんぶじでしたか大地震や原発の被害のことは暗い気持ちになりますねとりかえしのつかないことですから
"理解できないエラー"になるのは言語として脆弱であると思います"他の言語にすべて切り替え、今までのは何だったのかと思うほどです"などの書き込みもありましたね
overlayprn001.dllで方眼紙を作って印刷したらエプソンのプリンタでは正確に印刷されましたがキャノンのプリンタでは30cmで0.5mmずれて印刷されましたプリンタの精度はこんなものなのかも

ご無沙汰です  投稿者:inaba  投稿日:10月04日(火)20時45分06秒 [34]
東日本大震災で被災しました。フツーはまず体験することがないわけで・・。
まあ、良しとしますか・・。

ご無沙汰です!  投稿者:kourogi  投稿日:05月30日(月)23時52分59秒 [33]
相変わらずね理解できないエラーと戦いながら
頑張ってますよー
みなさん元気ですかね、震災もあったものですから
気になってました。

 投稿者:x  投稿日:03月01日(火)07時32分08秒 [32]
自分でビルドする方へ
Microsoft Visual Studio 2008を起動する
ファイル 新規作成 プロジェクト
Visual C++ Win32 Win32コンソールアプリケーション
プロジェクト名 例keybd001
場所 例d:\c++
ソリューション名 例keybd001
OK
次へ
DLL
空のプロジェクトをチェック
完了
プロジェクト 新しい項目の追加
Visual C++ コード
C++ ファイル
ファイル名 例keybd001
追加
keybd001.cppをコピペする
プロジェクト keybd001 のプロパティ
構成プロパティ
構成 Debug
全般 文字セット マルチバイト文字セットを使用する
C/C++ コード生成 ランタイム ライブラリ マルチスレッド デバッグ (/MTd)
適用
構成 Release
全般 文字セット マルチバイト文字セットを使用する
C/C++ コード生成 ランタイム ライブラリ マルチスレッド (/MT)
適用
OK
ビルド バッチ ビルド すべて選択 リビルド
エラー 0、警告 0 警告があっても動作するが理解の上で使用すること
2 正常終了、0 失敗、0 スキップ
D:\c++\keybd001\Releaseにkeybd001.dllがビルドされる

encode001.dll の使い方  投稿者:マルちゃん  投稿日:02月16日(水)15時45分28秒 [31]
回答有難うございます。

testではうまく動作いたしました。
有難うございました

 投稿者:x  投稿日:02月10日(木)18時00分24秒 [30]
書き込みありがとうございます
EXTERN CSTRING shift_to_utf(CSTRING,CSTRING) encode001.dll
store "あいうえお" to string01 &&変換元の文字列
store space(1000) to string02 &&これはバッファオーバーラン防止のバッファです
shift_to_utf(string01,string02)とやるとstring02に何かが^^入るでしょうが変換の結果はshift_to_utf()に帰ってきますstring02ではありません
store shift_to_utf(string01,string02) to string02としてはじめて変換の結果がstring02に代入されます
ほかのdllも同様でstring02などはたんなるバッファですので注意してください

encode001.dll の使い方  投稿者:マルちゃん  投稿日:02月10日(木)16時58分19秒 [29]
ARAGOI.EXE からencode001.dll を使ってHTML コマンドで出力する場合は
この書き方でいいのでしょうか?

EXTERN CSTRING shift_to_utf(CSTRING,CSTRING) encode001.dll

store "あいうえお" to string01
store spac(1000) to string02
shift_to_utf(string01,string02)

HTML TEST.htm
*------------ test.htm の中身 ここから
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

%string02
</html>
*------------- ここまで

この書き方では文字化けしてうまくいきませんでした。



OSの分岐利用  投稿者:Mishina  投稿日:02月02日(水)09時52分05秒 [28]
Xさんありがとうございます
XP Microsoft Windows XP [Version 5.1.2600]
Vista Microsoft Windows [Version 6.0.6001]
Windows 7 Microsoft Windows [Version 6.1.7600] で
XP=5.1 Vista=6.0 win7=6.1 の判断でやってみます

 投稿者:x  投稿日:02月01日(火)21時03分30秒 [27]
Mishinaさんご自愛ください
www.soupacific.comの掲示板にVistaがMicrosoft Windows [Version 6.0.6001]
Windows 7がMicrosoft Windows [Version 6.1.7600]と表示されますと書き込みましたが
別のVistaはMicrosoft Windows [Version 6.0.6000]でした
また古いWindows NTで動かなかったのでこっそりなおしました

keybd001.dll 御礼  投稿者:Mishina  投稿日:02月01日(火)19時53分56秒 [26]
Xさん たいへんご無沙汰しております。
keybd001.dll をありがとうございました。手元にはwin7はありませんが
この関数でOSを読み込んで分岐させることが出来るようになります。


 2011年 



MAIL  投稿者:kourogi  投稿日:12月26日(日)19時45分57秒 [25]
自動返信システムが稼動して1ヶ月
いろいろありましたが、返信が来ないのは
携帯でPCからのメール拒否になっていたことがほとんどで
その他 iPhoneは From: のメールアドレスが
<>なしのアドレスに続いて <>内にアドレスが入るパターンなど
携帯により様々なケースがあるようです。

今年は本当にありがとうございました
システムも皆様に出会って
大きな収穫をもとに、さらに便利に発展できましたこと
心より感謝申し上げます。
DirectPRNは特に飛躍しました
簡単な集計の帳票は
レシートプリンターでもできるようになり
いちいちA4用紙をセットしなくても、
誰でも手軽に印刷できるようになりました。

スナップ写真のデータをもとに
顧客管理が全員で共有でき、今DMの準備をしています。

自動返信メールは
メーカーが大変便利に利用しています、
弊社に来るメーカーは事前にメールで確認し
追加を持ってきてくれることで
欠品が防止できるようになりました。

現在与えられた宝物をもとに、
プログラムのシンプル化
集計関連の新規プログラムに着手しています。

来年もお付き合い頂けましたら幸いです
最近私の書き込みが減りましたが、
順調に進捗している証でありまして
また、ご相談いただくこともございますが
その折にはよろしくお願い申し上げます。

Re:MAIL  投稿者:inaba  投稿日:12月13日(月)07時59分34秒 [24]
> すっきりしません。
kourogiさん、情報が少なすぎて想像できません。
でもまあ、期待どおりの機能が実現できれば結果オーライでは?


MAIL  投稿者:kourogi  投稿日:12月11日(土)20時24分48秒 [23]
下記における原因は違っていました、
whenをはずしたのですが、やはりプッシュボタンは効かなくなります
数回の受信を繰りかえすと効かなくなりますが、2回程度の場合は
問題ないようです。
現在はプッシュを再定義することによって解決しましたが、
すっきりしません。

MAIL  投稿者:kourogi  投稿日:12月09日(木)13時21分40秒 [22]
すみません、また板を汚してしまいました
inabaさん いいところ突いてるかもしれません
>プッシュボタンに when オプション
時間がかかるテストなので、試してみます。

MAIL  投稿者:kourogi  投稿日:12月09日(木)13時19分33秒 [21]
プッシュボタンに when オプション

Mail  投稿者:inaba  投稿日:12月09日(木)11時08分02秒 [20]
> start timer のタイマー実行中のようです、
> 一連の処理は実行しているけど、プッシュボタンは反応していない
不思議ですねえ。
ソースコードは何行くらいですか?
timerは定期的にメールサーバにアクセスするためだけに使ってらっしゃるのですか?
プッシュボタンに when オプションを使ってなくても反応しなくなるのでしょうか?

MAIL  投稿者:kourogi  投稿日:12月07日(火)22時45分19秒 [19]
inabaさんお世話になります。
タスクマネージャーは実行中となり
ESCキーでダイアログは閉じます。

ブロックごとにチェックしてみると
start timer のタイマー実行中のようです、
プッシュボタンが効かなくても 実行中であり、
その間メールも自動受信し、また処理後の結果をメール送信はしています
一連の処理は実行しているけど、プッシュボタンは反応していないのです
落ちるわけでもなく、ESCでダイアログは消え、メニューに戻るので
支障はないのですが、気になります。
それを考えると 無限ループでも無いようです。

はずれてるでしょうねえ  投稿者:inaba  投稿日:12月07日(火)11時56分22秒 [18]
見当がつかないので書き込みを控えていましたが、windowsやjavaなどのアップデート中なんてことはないでしょうか?
また、メールの総数を検査処理しているときに、本数によって無限ループに入るとか・・?
> いつのまにか 
> ダイアログ内すべてのプッシュボタンが
> 効かなくなり、中断のプッシュボタンが反応しない
反応しなくなったときタスクマネージャーを起動するとどうですか?

MAIL  投稿者:kourogi  投稿日:12月05日(日)01時09分44秒 [17]
今回の自動返信メールのシステム
順調に作動はするのですが
1日中作動させると、いつのまにか 
ダイアログ内すべてのプッシュボタンが
効かなくなり、中断のプッシュボタンが反応しないので
ESCで中断させることになります。

携帯で2,3回テストしてみると、問題ないのですが
そうなるタイミングがわかりません。

MAIL  投稿者:kourogi  投稿日:11月30日(火)02時06分20秒 [16]
旧掲示板にお気に入り登録してあったので
迷子状態でした。
サンプルプログラムの板のページをお気に入りしていたマシンが1台あって
たどり着けました。

自動メール返信システム スタッフ全員に操作方法を通達して
順調に稼動いたしました。
自分が休みの日でも 担当店舗の売上を問い合わせる
熱心な社員がいることも、履歴から見えて 思わぬ収穫です。
こいつは 年明け 店長昇格です(冗談ではなく本当に)

xさん mail011ご苦労おかけしましたこと、心より感謝します。

どうした  投稿者:kourogi  投稿日:11月30日(火)01時58分43秒 [15]
なにが 起きた!

新mail001.dll  投稿者:inaba  投稿日:11月27日(土)06時23分12秒 [13]
inabaです。おはようございます。
xさん、新版のmail011.dll、wz-mailerで送ったメールもOKでした。
お疲れさまでした。

 投稿者:x  投稿日:11月26日(金)08時53分02秒 [11]
inabaさんお気に入りのwz-mailerの件です
他でも同様の文字化けが起こり確認しましたwz-mailerの問題ではなくmail001.dllのバグでしたすいませんでした
iso-2022-jpの場合1B2442で漢字に変更して"中間"その後1B2842でASCIIにもどす・・・が間違えていました
上記の他に漢字inに1B2440、漢字outに1B284Aが使われていました
wz-mailerでは漢字outが1B284Aとなっているようです
mail001.dllなおしました

新版pop3  投稿者:inaba  投稿日:11月23日(火)09時49分03秒 [10]
xさん、すばらしいできばえと思います。添付ファイルもOKでした。

 投稿者:x  投稿日:11月23日(火)09時48分48秒 [9]
pop3.prgを動かしてみると添付ファイルのファイル名が日本語だったりいろんなメールがあるのがわかります汎用で動くようにするのは面倒ですね
pop3ex.prgは自前のsendmail.prgで送った添付ファイルの場合などContent-Transfer-Encoding: base64によって送られた添付ファイルを保存します
Outlookでは添付ファイルの拡張子によって送り方が変わるようで拡張子がtxtの場合などContent-Transfer-Encoding: Base64で送られた場合だけ動きます
添付ファイルの保存先やファイル名を送信側でなく受信側で決めるようにしないと受信側の任意のファイルを書き換えられてしまうので注意!
危険なメールの添付ファイルも保存されるので注意!
pop3ex.prgは送信元を特定しないと使い道がないと思います(危険)ファイルの送受信にはhttp001.dllの方がいいです(md5チェックサムも使う)
kourogiさんも認証なしでは迷惑メールに返信することになりはしないかと・・・

 投稿者:x  投稿日:11月20日(土)19時55分19秒 [7]
長い件名の場合は複数行で送られてくるのでpop3.prgで一行にまとめました同様に長い件名を送る場合は複数行で送るようにsendmail.prg(sendmail1.prgも)をなおしました

掲示板  投稿者:inaba  投稿日:11月14日(日)14時42分45秒 [5]
xさん、おはようございます。
掲示板のメンテ、おつかれさまです。
新掲示板、今までと同じですか?
タグも有効だったのですか? 大丈夫かな。
ODNのサービスを見たら、ページ設定ができるみたいですね。

☆☆☆ merrybelleの掲示板 ☆☆☆

皆さん、お気軽に書き込んでください。

前ページ


MAIL  投稿者:kourogi  投稿日:11月12日(金)00時21分06 [476]

xさん、すみません475の意味がわからなかったものですから
削ったら、レスポンス良く、自動応答システムが稼動しました。
SMTP
サーバーによって仕込むセット回数が違うということでしょうか
SMTP
が変わったとき、同様の調査が必要になるのでしょうか

今は認証なしの受信したタイトルだけで応答する、現在の売上速報だけですが
なんだか大企業のシステムのようでワクワクします。
社員だけの情報共有だけではなく、仕入れ元の売れ筋問い合わせなど
取引先が自社のために先手を打ってもらうことができる、楽しみです!


 投稿者:x  投稿日:11月11日(木)20時11分00 [475]

了解しましたkourogiさんは4733行を2セット余分にいれて一個につきタイムアウト10秒間計20秒を根気よく待ったと言うことですね1個のメールを送るのに時間がかかりすぎると思わなかったですか?4733行のセットは459に書き込んだようにピリオドで終わってくださいまで表示される最小回数にしてください余分な一個につきタイムアウト10秒間の無駄になります


MAIL  投稿者:kourogi  投稿日:11月11日(木)19時42分46 [474]

xさん、抜けはないと思います、何回かチェックしました
473
3行を2セット削ると 空白行は出ません、
関係なかったですか?


 投稿者:x  投稿日:11月11日(木)12時56分12 [473]

kourogiさん同じように空白2行入りますがの件ですが時間のあるときに下記みてくれませんか?
STORE SPACE(1000) TO string01
STORE recvsockoneline(sock,string01) TO n
? SUBSTR(string01,1,n)
上記のようにバッファ用に毎回STORE SPACE(1000) TO string01を入れなければならないのですがこれが抜けていませんか?


wz-mailer  投稿者:inaba  投稿日:11月11日(木)06時48分36 [472]

> このメールを送り出したメールソフトを特定できますか?
テキストエディタに付属しているおまけですから、たぶんマイナー、dllで対策する必要はないと思います。個人的には大好きなメーラーですけど・・。


MAIL  投稿者:kourogi  投稿日:11月11日(木)00時41分23 [471]

xさんバッチリです!
459
のように修正したところ
sendmail

同じように空白2行入りますが
正常に送信できました。
ありがとうございます!


 投稿者:x  投稿日:11月10日(水)22時55分49 [470]

iso-2022-jpの場合1B2442で漢字に変更して"中間"その後1B2842ASCIIにもどす1B2442で漢字に変更して"こん"その後1B2842ASCIIにもどすものと思いますが
inaba
さんの指摘のメールの場合上記の1B2842ASCIIにもどすが抜けているようです
このメールを送り出したメールソフトを特定できますか?それがよく使われているメールソフトならばmail001.dllでも対応しなければなりませんね


デコード  投稿者:inaba  投稿日:1110日(水)2157分24 [469]

> メール本体の"こん"の後ろは空白ですかCRLFですか?
すみません、メーラーでDLしてしまいましたが、たぶんCRLFです。
DL
したmbxの該当部分を正確に書くと
--
To:
中間 <hoge@huga.co.jp>
Subject: test3
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="iso-2022-jp"
From: GON <hogo@huga.co.jp>
X-Mailer: WZ MAIL 5.03
Cc:
X-UIDL: cK'"!T????]"!
Status: RO

こん

--
です。
pop3hoge.prg
で取得した場合は
--
To:
中間~G服珠瘠瘢畧苺鉅尞鼈甌竢・霈
Subject: test3
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="iso-2022-jp"
From: GON <hogo@huga.co.jp>
X-Mailer: WZ MAIL 5.03
Cc:
X-UIDL: cK'"!T????]"!
Status: RO

こん~GJ

.
--
です。
空白行はCRLFです。
@
を含むメアドとX-UIDLは書き換えてあります。


 投稿者:x  投稿日:11月10日(水)21時23分08 [468]

To: =?ISO-2022-JP?B?GyRCQ2Y0VhsoSg==?= <hoge@huga.co.jp>のほうは"中間"の後ろでASCIIに切り替わらないだけです修正済みと思っていました
メール本体の"こん"の後ろは空白ですかCRLFですか?


正確に・・  投稿者:inaba  投稿日:1110日(水)2116分35 [466]

クライアントに提供するソフトのバグの処理は本当にやっかいですよね。
x
さん、前便に正確さを欠きましたので追記です。
----
To: =?ISO-2022-JP?B?GyRCQ2Y0VhsoSg==?= <hoge@huga.co.jp> &&
メール本体
To:
中間~G服珠瘠瘢畧苺鉅尞鼈甌竢・霈 &&pop3.prgで取得
----
上記、ftpで接続し、数珠繋ぎメールをテキストエディタで見るとそうなってますが、
送信したメールの To: は「中間<hoge@huga.co.jp>」ですので、文字化けは「~G..」と思われます。


 投稿者:x  投稿日:11月10日(水)21時08分54 [465]

inabaさんの462の指摘も明らかにバグですね恐縮です指摘していただきおおいに助かりますバグがあっても許される場合と許されない場合がありますねレンタルサーバーのほうが厳密なのはりっぱですね
お手数ですが今日のmail001.dllをダウンロードしてもう一度ためしてみてください


xさん、ご苦労さま  投稿者:inaba  投稿日:1110日(水)2024分23 [462]

お世話になりますねえ。無理しないでください。
一応、私の方も報告します。
新しいNo.461前の 新しいpop3.prgsendmail001.dllでレンタルサーバのPOP試しました。
おおむねOKでした。
以下に、ちょっと違う?みたいな部分を・・。
----
To: =?ISO-2022-JP?B?GyRCQ2Y0VhsoSg==?= <hoge@huga.co.jp> &&
メール本体
To:
中間~G服珠瘠瘢畧苺鉅尞鼈甌竢・霈 &&pop3.prgで取得
--
こん &&メール本体の本文
こん~GJ  &&pop3.prgで取得した本文
----
こんな感じでした。


 投稿者:x  投稿日:11月10日(水)20時07分10 [461]

kourogiさんありがとうございますおかげさまでまたバグがみつかりました修正したsendmail.prgsendmail1.prgも)をアップロードしましたのでまずそのままでためしてみてくださいだめならば459をためしてください235 Authentication successfulとなっていますので認証まではokですね


MAIL001.dll  投稿者:kourogi  投稿日:11月10日(水)19時32分33 [460]

表示は下のとおりでした
220 smtp07.phy.lolipop.jp ESMTP qpsmtpd 0.82 ready; send us your mail,but not your spam.
250 smtp07.phy.lolipop.jp Hi i60-36-129-169.s02.a024.ap.plalaicmesh.ad.jp [60.36.129.169]
250-PIPELINING
250-8BITMIME
250-SIZE 10240000
250 AUTH PLAIN LOGIN CRAM-MD5
(
空白)
(
空白)
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
235 Authentication successful for xxx@syaruru.com - authsql/login
501 could not parse your mail from command
503 Use MAIL before RCPT
503 MAIL first
     


 投稿者:x  投稿日:11月10日(水)18時25分28 [459]

忙しいところ恐縮ですが時間のあるときに下記をためしてみてくださいなさけないことに手動設定です
kourogi
さんのレンタルサーバーの場合は
sendmail.prg
PROCEDURE sendmail01の中を
下記をコメントアウトする
*        sendjis(sock,'HELO localhost'+CHR(13)+CHR(10))
*        STORE SPACE(1000) TO string01
*        STORE recvsockoneline(sock,string01) TO n
*        ? SUBSTR(string01,1,n)

下記を挿入する
        sendjis(sock,'EHLO localhost'+CHR(13)+CHR(10)) && EHLO
です間違えないように
        STORE SPACE(1000) TO string01
        STORE recvsockoneline(sock,string01) TO n
        ? SUBSTR(string01,1,n)
        STORE SPACE(1000) TO string01
        STORE recvsockoneline(sock,string01) TO n
        ? SUBSTR(string01,1,n)
        STORE SPACE(1000) TO string01
        STORE recvsockoneline(sock,string01) TO n
        ? SUBSTR(string01,1,n)
        STORE SPACE(1000) TO string01
        STORE recvsockoneline(sock,string01) TO n
        ? SUBSTR(string01,1,n)
        STORE SPACE(1000) TO string01
        STORE recvsockoneline(sock,string01) TO n
        ? SUBSTR(string01,1,n)
        STORE SPACE(1000) TO string01
        STORE recvsockoneline(sock,string01) TO n
        ? SUBSTR(string01,1,n)
        STORE SPACE(1000) TO string01
        STORE recvsockoneline(sock,string01) TO n
        ? SUBSTR(string01,1,n)

受信回数は710回くらいでピリオドで終わってくださいまで表示されるように受信回数を合わせる
少ないとピリオドで終わってくださいまで表示されない多すぎると一個につきタイムアウト10秒間待つことになる

so-net.ne.jp
では下記のように表示される
220 mx61.ms.so-net.ne.jp ESMTP
250-mx61.ms.so-net.ne.jp Hello KKRfx-01p1-191.ppp11.odn.ad.jp [210.120.100.190], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 10240000
250-DSN
250-AUTH LOGIN PLAIN
     これが表示されればAUTH LOGINを使えます
250-STARTTLS
250-DELIVERBY
250 HELP
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
235 2.0.0 OK Authenticated
250 2.1.0 xxx@pro.odn.ne.jp... Sender ok
250 2.1.5 xxx@js3.so-net.ne.jp... Recipient ok
354 Enter mail, end with "." on a line by itself
  ピリオドで終わってください


MAIL  投稿者:kourogi  投稿日:11月10日(水)16時12分03 [456]

xさん 452で言われる通りかもしれません。
使ったことのないPLALAから頂いたメールアドレスを認証ありで使用したところ
正常送信できました。
レンタルサーバーの場合は次のメッセージを表示します。
220 smtp04.phy.lolipop.jp ESMTP qpsmtpd 0.82 ready; send us your mail,but not your spam.
250 smtp04.phy.lolipop.jp Hi FL1-219-107-XXX-xxx.aicmesh.ad.jp [219.107.xxx.xxx]; I am so happy to meet you.
500 Unrecognized command
500 Unrecognized command
500 Unrecognized command
501 could not parse your mail from command
503 Use MAIL before RCPT
503 MAIL first


 投稿者:x  投稿日:11月10日(水)13時42分19 [454]

sendmail.prg
sendmail1.prg
pop3.prg
上記で行末を+CHR(10)としていたのを+CHR(13)+CHR(10)にかえましたのでためしてみてください


POP3  投稿者:inaba  投稿日:1110日(水)1309分15 [453]

xさん、説明不足ですみません。
レンタルサーバのレスポンスを再掲
---------------------
1 +OK Qpopper (version 4.0.5, modified by Sphera Technologies) ready. <30787.1289309004@sphera>
2
3
4 -ERR Bad command.
---------------------
この 1-4 の番号はレスポンスでなく、pop3hoge.prgに書いたものです。
1
は ? "1 "+SUBSTR(string01,1,n)  && 接続OKpopサーバ
2
は ? "2 "+SUBSTR(string01,1,n)  && IDはOK passを送れ
3
は ? "3 "+SUBSTR(string01,1,n)  && パスはOK メール数あり
4
は ? "4 "+SUBSTR(string01,1,n)  && message数+総バイト数
接続はしたが、ユーザidpasswordはどうなっているんでしょう?
受信ボックスにメールがあるのは、ftp接続で確認できますし、IDもパスワードも間違っているようにはみえません。
また、xさんのご指摘にしたがって、1 の部分を少しずつ増やしながら試してみましたが、変化はなく、2回繰り返したところで(つまり3回目の 1 で)以下のエラー。
1 -ERR Bad command.


 投稿者:x  投稿日:11月10日(水)09時50分49 [452]

SMTP認証ですがsendmail.prgでは'HELO localhost'を送り'AUTH LOGIN'で認証していますodn.ne.jpso-net.ne.jpではokなのですがkourogiさんが使用しているメールサーバーではここが違うのでしょう
sendmail.prg
を実行したとき何が表示されるか個人情報を抜いておしえてください
sendjis(sock,'HELO localhost'+CHR(10))
の後レスポンスが複数行の場合は下記のように受信する行を一つずつ増やしてみてください
sendjis(sock,'EHLO localhost'+CHR(10))
STORE SPACE(1000) TO string01
STORE recvsockoneline(sock,string01) TO n
? SUBSTR(string01,1,n)
STORE SPACE(1000) TO string01
STORE recvsockoneline(sock,string01) TO n
? SUBSTR(string01,1,n)
inaba
さんのレンタルサーバーの件もstore opensock(pop01,110) to sockの後のレスポンスが複数行なのかもしれません下記のように受信する行を一つずつ増やしてみるとわかるかもしれません
store opensock(pop01,110) to sock
if sock>0
    STORE SPACE(1000) TO string01
    STORE recvsockoneline(sock,string01) TO n
    ? SUBSTR(string01,1,n)
    STORE SPACE(1000) TO string01
    STORE recvsockoneline(sock,string01) TO n
    ? SUBSTR(string01,1,n)
endi


POP3  投稿者:kourogi  投稿日:11月09日(火)23時28分48 [448]

xさんご安心を
すでに対応済みです!


 投稿者:x  投稿日:11月09日(火)23時13分00 [447]

新しいpop3.prgで上のdo whileがメールヘッダ部で下のdo whileが本文ですどちらも? check01で出力してますのでそこからデータを取り出せます上の? check01の下に
? check01
if left(check01,9)='Subject: '
    store substr(check01,10,len(check01)-9) to subject01
endi
とすればSubject: を取り出せます


mail001.dll  投稿者:inaba  投稿日:11月09日(火)22時41分28 [445]

xさん、No.418を実行したら、ヘッダをDLして終わってしまったので、元のpop3.prgのプロシージャ(sousin)に書き込んで解決していました。
>
前のmail001.dll
> recvjisoneline()
デコードする
> recvjisquoted()
 デコードする
これと関係あるかどうか乏しい頭では不明ですが・・。


レンタルサーバ  投稿者:inaba  投稿日:1109日(火)2234分02 [444]

レンタルサーバで試してみました。
OSはLINUX、POPサーバとSMTPサーバがあります。
アカウントを作成し、メールを送り、pop3hoge.prgを実行(pop3hoge.prgは、プロバイダのメールサーバではOKを確認済みです)。
で、やってみた結果をテキストファイルに出力すると
---------------------
1 +OK Qpopper (version 4.0.5, modified by Sphera Technologies) ready. <30787.1289309004@sphera>
2
3
4 -ERR Bad command.
---------------------
以上でおしまいになってしまいました。
dll
は古い方です。
ウーム??・・??


 投稿者:x  投稿日:11月09日(火)20時00分55 [443]

inabaさんmail001.dllのバグというのは前の mail001.dllではSubject: =?iso-2022-jp?B?GyRCJUYlOSVIGyhC?=などをメールヘッダ内でも本文内でもデコードしてましたがメールヘッダ内ではデコードする本文内ではデコードしないにかえました
前のmail001.dll
recvjisoneline()
デコードする
recvjisquoted()
 デコードする
新しいmail001.dll
recvjisheader()
 デコードする
recvjisoneline()
デコードしない
recvjisquoted()
 デコードしない
前のmail001.dllで差し支えなければ前のでもokと思います


MAIL001.dll  投稿者:kourogi  投稿日:11月09日(火)19時43分21 [442]

kourogiさん、これってユーザー名はアットマークより前の部分じゃありません?
両方試しました、レンタルサーバーなのでxxxだけではないようです
POP3.prg
は正常です。
プロバイダで与えられたメールアドレスを試して見ます。


Tiny+Zero  投稿者:inaba  投稿日:11月09日(火)19時31分49 [441]

今日、ようやくTiny+Zeroのテストに成功しました。
自宅のXPパソコンをzeroのサーバにし、外部のXPパソコンからルータ越しの無線LAN経由でOKでした。
1つの技術を使えるようにするということは、たいへんなことなんだ・・とあらためて思いました。


mail001.dll  投稿者:inaba  投稿日:11月09日(火)19時07分48 [440]

xさん、
> pop3.prg
mail001.dllのバグでしたなおしました
dll
にもバグがありましたか?
pop3.prg
の方は私なりに試行錯誤して修正し、期待通り動いてくれましたが・・。
たとえば、ユーザー名やパスワードや商品コードの取り出し・・など。


ユーザ名  投稿者:inaba  投稿日:1109日(火)1902分32 [439]

ちょっと忙しい仕事にふりまわされている間に何やら議論がすすんでますね。
掲示板、見るだけは見てたんですけど・・。
>
ユーザー名はMAILアドレスであるxxx@syaruru.com です。
kourogi
さん、これってユーザー名はアットマークより前の部分じゃありません?


POP3  投稿者:kourogi  投稿日:11月09日(火)16時25分14 [438]

xさん、ご自身の知識と実力は、私は尊敬しております。
それよりも、知識のある技術者よりもっとすばらしいことは
ご自身の時間をさいて、
私のような者に、親切に指導して頂けるご好意そのものです。
inaba
さんも同じだと思います。
ありがとうございます。


 投稿者:x  投稿日:11月09日(火)14時30分06 [437]

Subject: が複数行のものもあることは知りませんでしたの件ですがkourogiさんすいませんこれは私のpop3.prgmail001.dllのバグでしたなおしました私のdllはこの程度のものです


SENDMAIL  投稿者:kourogi  投稿日:11月09日(火)12時13分04 [435]

SENDMAILでした、文頭に「SMTP認証ありの」を確認しました
ユーザー名はMAILアドレスであるxxx@syaruru.com です。
場所を変えてテストしてみます。


 投稿者:x  投稿日:11月09日(火)07時31分46 [434]

SMTP認証ありの場合はsendmail.prgなのですが kourogiさんの書き込みはSENDMAIL11がついているのですが・・・またUsernamexxxではなくxxx@js3.so- net.ne.jpだとかでしょうか+OKpop3サーバーのレスポンスですのでsendmail.prgのほうでは+OKは出ないです


SENDMAIL1  投稿者:kourogi  投稿日:11月09日(火)02時42分17 [431]

Outlookでは送受信ともにOK
SMTP
認証ありで 各xxxは間違いないと思うのですが
Unrecognized command
3つ出て終了します。
ポートは587です
何の設定か悩んでいます。ダウンロードした最新のprgdllですが
原因を調べています。


 投稿者:x  投稿日:11月08日(月)20時45分54 [430]

まずOutlookWindowsメールなどの現在使用している メーラーでテストしますokならばSMTP認証ありの場合はsendmail.prg(一般的)、SMTP認証なしでPOP before SMTPの場合はsendmail1.prgxxxとなってる各項目をすべて設定してテストしてみてください最新のprgを使ってくださいESMTP SMTP認証ありのほうですね


POP3  投稿者:kourogi  投稿日:11月08日(月)20時18分32 [427]

お尋ねいただいたメールサーバーへの接続間隔について
目安などの制限は設けておりませんが、30秒間隔など、
頻繁に接続が行われますと、サーバーに負荷が発生しやすくなります。

しかし、サーバーに著しい負荷が発生している場合には
ご対策をお願いする旨のご連絡を差し上げることがございます。
予めご了承ください。

と言われました、2分くらいなら良さそう、そういう問題かな。
今、メール送信のテストしていますが、うまくいきません。
sendmail1
を実行しました

+OK Connected to proxy server.
+OK Bye-bye
220 smtpXX.phy.XXXXXX.jp ESMTP qpsmtpd 0.82 ready; send us your mail, butnot your spam.
250
・・・・・・・・; I am so happy to meet you.
501 could not parse your mailfrom command
503 Use MAIL before RCPT
503 MAIL first
と表示されます、何の設定に問題がありそうか 
わかりますでしょうか


POP3  投稿者:kourogi  投稿日:11月08日(月)15時59分28 [426]

ありがとうございます、
間隔は変更するとして
cgi
は全く知識が無いので
今回のメール受信の方法で
完成してみます。
レンタルサーバーにも問い合わせてみます。


 投稿者:x  投稿日:11月08日(月)10時12分19 [425]

在庫問い合わせの業務で1分間隔がどうしても必要ということならばcgiinabaさんのシステムのように問い合わせフォーム入力から自動メール配信とするか結果をブラウザで表示するように方法をかえたほうがいいと思います


間違い  投稿者:inaba  投稿日:1107日(日)2007分35 [423]

前便に間違い。
>
対策は、プロバイダのメールルール設定で、自分自身から自分自身への送信は無条件にOKとする。
「送信」ではなく、「受信」です。


SPAMメール  投稿者:inaba  投稿日:1107日(日)1958分50 [422]

> メールサーバー(レンタル)への問い合わせは、頻繁に行いすぎると
>
サーバー攻撃のように扱われるのでしょうか、
的をはずしているかもしれませんが、フォーム入力があったらその内容を自分自身から自分自身へのメール送受信させると、頻繁になった場合、私のプロバイダでは受信をディナイされました。
プロバイダに問い合わせましたら、「詳細な基準は公開できないが(公開すると犯人にSPAM対策ができてしまうから)、そういう対応をしています」とのこと。
対策は、プロバイダのメールルール設定で、自分自身から自分自身への送信は無条件にOKとする。
以後は問題なく送受信できるようになりました。


POP3  投稿者:kourogi  投稿日:11月07日(日)19時45分23 [421]

ここでの質問は不適切かもしれませんが
メールサーバー(レンタル)への問い合わせは、頻繁に行いすぎると
サーバー攻撃のように扱われるのでしょうか、
DEFINE TIMER
を使いますが
1
分間隔での接続は、一般的な常識外でしょうか
その辺りが気になります。


POP3  投稿者:kourogi  投稿日:11月07日(日)18時38分12 [420]

ここでの質問は不適切かもしれませんが
メールサーバーへの問い合わせは、頻繁に行いすぎると
サーバー攻撃のように扱われるのでしょうか、
DEFINE TIMER
を使いますが
1
分間隔での接続は、一般的な常識外でしょうか
その辺りが気になります。


POP3  投稿者:kourogi  投稿日:11月07日(日)14時26分48 [419]

xさん大変勉強になります、
メールサーバーは全く知識がありません、
Subject:
が複数行のものもあることは知りませんでした
ありがとうございます


 投稿者:x  投稿日:11月07日(日)10時50分05 [418]

inabaさんの言われるとおり+OK・・・はUSER PASS STAT QUITなどの"リクエスト"に対するサーバーの"レスポンス"ですSubjectなどをPRG内の文字列処理で取り出しますPROCEDURE pop301の中を下記などのように変えますメールヘッダは最初に一行あくところまでですのでn>0までがヘッダです
set language to american
store '' to from01,to01,subject01
do while n>0
    STORE SPACE(1000) TO string01
    STORE recvjisoneline(sock,string01) TO n
    store subs(string01,1,n) to check01
    if left(check01,6)='From: '
        store substr(check01,7,len(check01)-6) to from01
    endi
    if left(check01,4)='To: '
        store substr(check01,5,len(check01)-4) to to01
    endi
    if left(check01,4)='Subject: '
        store substr(check01,9,len(check01)-8) to subject01
    endi
    ? subs(string01,1,n)
endd
上記は'Subject: 'が一行の場合ですがメールによって複数行のものもあります'Content-Type: ''Content-Transfer-Encoding: ''multipart/mixed;'の場合は'boundary='の文字列で区切られて何度も出てきます
続いて下記などで必要なデータを取り出します
set language to american
store '' to user02,password02,data01
store 0 to quoted
do while n>=0
    STORE SPACE(1000) TO string01
    if quoted=0
        STORE recvjisoneline(sock,string01) TO n
    else
        STORE recvjisquoted(sock,string01) TO n
    endi
    store subs(string01,1,n) to check01
    if left(check01,11)='
ユーザー名='
        store substr(check01,12,len(check01)-11) to user02
    endi
    if left(check01,11)='
パスワード='
        store substr(check01,12,len(check01)-11) to password02
    endi
    if left(check01,7)='
データ='
        store substr(check01,8,len(check01)-7) to data01
    endi
    if at('quoted-printable',check01)<>0
        store 1 to quoted
    endi
    ? subs(string01,1,n)
    if subs(string01,1,1)='.'
        exit
    endi
endd
なおopensock()したら必ずclosesock()してくださいaragoPOP3()にはclosesock()に相当するものがないようでこういうところもダウンの原因になると思います
迷惑メールに返信しない機密情報を漏洩しないなど注意!


POP3  投稿者:kourogi  投稿日:11月07日(日)02時11分50 [405]

xさんありがとうございます、
ユーザー名を返信用アドレス
それにパスワードで
試作してみます。


 投稿者:x  投稿日:11月06日(土)12時47分37 [403]

問い合わせメールの本文を
コウロギユーザー=abcd1234
コウロギパスワード=12345678
商品コード=00000001;00000010;00000100
として
PROCEDURE pop301
の中のstore subs(string01,1,n) to check01の次にdo hensin with check01を入れて
PROCEDURE hensin
    parameters check01
    set language to american
    store '' to user02,password02,syouhin01
    if at('
コウロギユーザー=',check01)<>0 &&コウロギユーザー=abcd1234
        store right(check01,8) to user02
    endi
    if at('
コウロギパスワード=',check01)<>0 &&コウロギパスワード=12345678
        store right(check01,8) to password02
    endi
    if at('
商品コード=',check01)<>0
        store substr(check01,12,len(check01)-11) to syouhin01 &&
商品コード=00000001;00000010;00000100
    endi
RETURN
取りだしたuser02,password02,syouhin01を使い返信メールの本文を作る
平成2211月61430
在庫は下記のとおりでございます
00000001=250
00000010=350
00000100=450
prg
mail001.dll修正しました


POP3  投稿者:kourogi  投稿日:11月05日(金)22時37分34 [391]

>ヘッダの文字列にないデータをリクエストしてもエラーにならずに「emptyを返す」・・?
了解です、いろいろテストしてみます。ありがとうございました。


pop3  投稿者:inaba  投稿日:11月05日(金)21時05分22 [390]

xさんからコメントをもらったほうがいいんじゃないかと思いますが・・。
>
メール構造は複雑なんですね
いや、何と言うか、逆に単純なような・・。
>
文頭 +OK で区切りと考えればいいのでしょうか
「OK」はサーバが吐き出すメッセージじゃないかと・・。
> X-Spam-Status:
の次からが本文
うーん、どうでしょ、xさん。ちょっと違うような気がしますが・・。
肝は、ヘッダの文字列にないデータをリクエストしてもエラーにならずに「emptyを返す」・・?
で、Subjectや本文がほしければ、それをPRG内の文字列処理で何とかすればいいということじゃないでしょうか?
あれ? あんまり変わらないか・・。


POP3  投稿者:kourogi  投稿日:11月05日(金)19時17分35 [389]

はい、inabaさん、さっそく頑張っていますが
サーバーはOCNの光、自宅はフレッツ光、これらはok
店によっては、OCN ADSL48 BIGLOBEはダメなところもあります
使用するのはサーバーなので、
その場のマシンでの正常動作は確認取れています。
メール構造は複雑なんですね、
文頭 +OK で区切りと考えればいいのでしょうか、
X-Spam-Status:
の次からが本文として考えますが、それでは問題ありますか?


pop3  投稿者:inaba  投稿日:11月05日(金)08時41分40 [388]

xさん、試してみました。すばらしい仕上がりです。
pop3.prg
中の「?」出力に番号をふって、テキストファイルに書き出してみました。
メールの構造も、その文字列の取り出し方もおもしろいですねえ。
これでkourogiさんもOKですね。


VPN  投稿者:kourogi  投稿日:11月05日(金)02時12分18 [387]

inabaさん随分長期出張でしたね、お疲れ様でした。


VPN  投稿者:inaba  投稿日:11月04日(木)22時00分29 [386]

inaba@自宅です。
kourogi
さん、案の定、Tinyのハブはメモリーにロードしただけで、稼動していませんでした。旅先から繋がるわけありませんよね。
さて、これからどこでテストしたものやら・・。


DIRECTPRN  投稿者:kourogi  投稿日:11月04日(木)18時10分15 [385]

すみません、
業務用のレシートプリンターがデフォルトに定義した用紙サイズにできていないようでした、
CANON
のインクジェットでテストしたところ、正常にデフォルトで印刷されました。
大変申し訳ありません、
レシートプリンター側のサービスに問い合わせてみます。
こちらのミスで失礼しましたこと、お許しください。


 投稿者:x  投稿日:11月04日(木)16時52分06 [384]

以前にも話が前後したり今回のことも実はと言われましてもどうもわからないのですが私の89の書き込みは無視されたのでしょうか?それとも0設定でデフォルトにならないということでしょうか?印刷ダイアログを表示してテ ストしてみてデフォルトの用紙設定がどうなっているのかおしえてください


POP3  投稿者:kourogi  投稿日:11月04日(木)16時00分04 [382]

xさん、すごいスピードでPOP3大成功です、
ありがとうございます。
さっそく、システムを組み始めます。


DIRECTPRN  投稿者:kourogi  投稿日:11月04日(木)15時41分00 [381]

xさん、実は切実なお願いがあるんです、
大変あつかましいお願いなのは十分承知しておりますが
ご検討頂けたら幸いです。
DIRECTPRN
の用紙サイズで、0なら デフォルトサイズにできないものでしょうか
実は、プリンターがレシートプリンターのため、最大のA3にしても足らない場合が発生していまして、
ページ数付けて分ければ可能ですが、
そのような例が他にはなくて、上記のように思う次第でございます。
大変あつかましいのですが、要望としてお聞き入れくださいませ。


 投稿者:x  投稿日:11月04日(木)13時28分31 [380]

前のpop3.prgodn.ne.jpではokでしたがso-net.ne.jpには合いませんでしたとりあえずLISTではなくSTATを使うように変えましたmail001.dllsendmail1.prgも変えました


MAIL  投稿者:kourogi  投稿日:11月03日(水)19時23分07 [378]

xさん ありがとうございます。
さっそく拝見させて頂きます。


pop3  投稿者:inaba  投稿日:11月03日(水)18時04分41 [377]

xさん、相変わらずの早業、ありがとうございます。
arago
pop3関数、サザンの掲示板にも書きましたが、どうにもうまくいきません。
今、dllpop3.prgをダウンロードしたところです。
明日は自宅に戻りますので、ゆっくりテストさせていただきます。
それにしてもSPAMうるさいですね。


 投稿者:x  投稿日:11月03日(水)16時39分41 [375]

mail001.dllをなおしてpop3.prgを置きました通信エラーの場合はタイムアウトするまで10秒以上待ってくださいRETRするだけで添付ファイルは作りません大丈夫と思いますが危険なメールに注意!


VPN  投稿者:kourogi  投稿日:11月02日(火)17時35分42 [373]

私の場合はONOKなんですが
うーん
よくわかりません。


報告  投稿者:inaba  投稿日:1102日(火)1324分54 [372]

Tiny+Zeroのその後の報告です。
仮想ハブの基本設定で「認証機能OFF」にしたら、一応zeroが動きました。
仮想ハブのないアダプタだけのPCWinX)にzeroサーバ+仮想ハブのあるPCwin7)にzeroクライアントでOK
その逆はだめでした。PCの能力の問題かなあ・・。


Tiny+zero  投稿者:inaba  投稿日:11月01日(月)17時19分26 [370]

まだ旅先なので、No.368はローカルLAN内でのテストです。
No.368
の設定のまま(zeroも起動)仮想ハブの「接続状況の表示」を見ると、以下2行表示。
---------------------------------------------------------------------
[adap1]127.0.0.1:50029
 acaunt1  -Global-  154KB  568KB  --(DHCP振出)
[LAN]192.168.25.70:2817
 acount1  -Global-  594KB  199KB  --
---------------------------------------------------------------------
50029 2817
というポート番号が気にはなりますが、接続できてるような・・。
でもし接続できているとすれば、疑問は、
zero
クライアントの「接続先アドレス」に、サーバのローカルの192.168.25.51を設定するとサーバのデスクトップが見えるし操作もできるのですが、サーバ側アダプタに設定した192.168.200.1を接続先に指定しても何も見えないのは何故か?
ということです。
何か勘違いしてます?


VPN  投稿者:kourogi  投稿日:11月01日(月)13時37分17 [369]

VPNのサーバー設定が間違っているなら
私のサーバーには繋がるはずです
私のサーバーにも繋がらないなら
クライアントのセキュリティか何かです
試してみますか ?
仮メール gomi@syaruru.com
に都合のいい時間をお知らせ頂ければ
開放しますよ、

使用IP200.1から200.100 にしていますが
そのほかはほぼ同じ設定です。
アカウント設定はされていますよね
ZERO
の設定はVPNが解決できてからするとして
下の説明からZEROを省いていただけると
分かりやすいです、すみません。

同一ローカル内でVPNのクライアント側の設定ですが
接続先は名前では接続できません、ローカルアドレスとなります。
クライアントはインターネット越しのマシンではないのですか?


Tiny+zero  投稿者:inaba  投稿日:11月01日(月)10時26分51 [368]

kourogiさん、時間がとれたら教えてください。
物理的に繋がっているLAN内でTinyVPN+zeroの設定についてです。
ルータ 192.168.25.1
サーバ 192.168.25.51
クライアント 192.168.25.70
サーバ上にTinyのハブとTinyのアダプタとzeroのサーバ設定 ポート:9999
ハブ 「DHCPサーバになる」→192.168.200.1から192.168.200.254
アダプタ 「次のIPアドレスを使う」→192.168.200.1
zero
サーバ 192.168.200.1 ポート:51512
クライアント上にTinyのアダプタとzeroのクライアント設定
アダプタ ホスト名:192.168.25.51 「次のIPアドレス」→192.168.200.2
zero
クライアント 接続先アドレス:192.168.200.1 ポート:51512
以上を実行しても、クライアントからサーバのデスクトップは見えません。
★zero
クライアントの接続先アドレスを物理的アドレス192.168.25.51にすれば見えます(Tinyを使ってないので当然ですか)。
上記の設定はまちがっているのでしょうか?
クライアントから、192.168.200.1へのpingは通ります。


メルトダウン  投稿者:inaba  投稿日:1101(月)0958分36 [367]

それぞれのdialogをオープンするfunctionとそれらをdeacivate+releaseするfunctionに切り分けて、上流から下流に向かってに順にfunctionを呼び出していくようにしてみてはどうですか?


POP3  投稿者:kourogi  投稿日:10月31日(日)22時39分27 [366]

えっ! pop3
ダメなんですか
まだテストも骨格もありません

X
さんの言われるムダなウインドゥの重なりがないか
チエックしてて思うのですが、新しくダイアログを出そうとすると
落ちますね、
でも再現しようと、落ちたところを何度繰り返しても落ちないのですよ、
ほんとに 難しいです。


pop3  投稿者:inaba  投稿日:10月31日(日)11時28分34 [365]

試してみましたが、POP3関数、期待通り動いてくれませんね。


pop3  投稿者:inaba  投稿日:10月31日(日)07時34分31 [364]

> 受信メールを2分ごとに監視し
>
受信した内容によって
>
データー計算後
>
結果を送信する
pop3()
関数を使うのですか?


MAIL  投稿者:kourogi  投稿日:10月30日(土)11時38分26 [363]

inabaさんありがとうございます、
aragoi
は持っていませんので
受信メールを2分ごとに監視し
受信した内容によって
データー計算後
結果を送信する形しか
現在の私のレベルではないようです。


掲示板スパム  投稿者:inaba  投稿日:1029日(金)2021分22 [362]

xさん、どうやら自動書き込みスパムじゃないみたいでしょうか。
ちょっと安心。


sendmail  投稿者:inaba  投稿日:10月29日(金)20時15分25 [361]

> ポートは25 指定ではなく自由に変更できるということでしょうか、
x
さんに代わって私が書き込むのもいかがかとは思いますが、そのとおりです。
ARAGO
sendmailは25番ポートだけしか対応してませんから。
>
携帯からの売上在庫の問い合わせに自動応答するシステムの着手です
sendmail
xさんのdllaragowでもaragoiでも使えると思いますが、
携帯サイトのフォームを利用した問い合わせに動的に変化する在庫を
「完全自動」でメール返信するということなら、
ARAGOI
を使うのが簡単だと思います。
ただ、
1)在庫DBFの更新がARADOWシステムでリアルタイムになされていること
2)レンタルサーバのOS上でARAGOIが動くかどうか
が、大問題ですね。
ちなみに私の場合は、DDNSでアドレス解決して、サーバは自宅のWIN2Kノート、そこにWinARAGOIを乗っけて、ある出版社の書籍注文まで処理しています。
注文者と出版社に注文フォーム入力から自動メール配信します。


ZERO  投稿者:inaba  投稿日:10月29日(金)19時52分32 [360]

> ZEROのポートは自動で設定されます、何も変更することはありません
了解しました。サーバ側の静的NATだけでOKということですね。
今のところ、本当に仮想ハブが「起動」しているかどうか、確認のしようがないので・・。


 投稿者:x  投稿日:10月29日(金)18時09分01 [359]

自動応答システムはPHPPerlなどのサンプルがあると思いますが私にはわからないです


MAIL  投稿者:kourogi  投稿日:10月29日(金)16時20分21 [358]

xさんの開発されたmail001.dllですが
ポートは25 指定ではなく自由に変更できるということでしょうか、
サンプルのプロシジャーはそのままでコピってOKでしょうか
メーカーが携帯からの売上在庫の問い合わせに自動応答するシステムの着手です
メール返信だけではなく、FTPにアップして携帯サイトを都度更新することも
考えられますが、
今は仕様が固まっていません。ちなみにaragoiは持っていません。
レンタルサーバーはあります。アドバイスご教授下さいませ。


VPN  投稿者:kourogi  投稿日:10月29日(金)15時40分09 [357]

ZEROのポートは自動で設定されます、何も変更することはありません
そもそも、ZEROはローカルLAN内で作動し、インターネットを利用する場合は
VPN
で接続され、ローカルなIPを、またはマシン名で指定したPCのリモートを行います。
従ってZEROLANで接続されているマシン同士しか利用できません。
inaba
さんはVPNと混同されていますよ、ZEROは全く何もしなくても、セキュリティだけ許可しておけば設定は何もありません。
問題はVPNのシモウサのシステムです。ファイアウォールだとか、他のセキュリティの障害はありませんか
操作する(クライアントPC)のルーターは関係ありません、セキュリティだけクリアしていればOKです。
接続ハブのPC(サーバーで待機しているPC)に接続しているルーターは
静的NATの設定が必要です。
クライアントで指定したホートと同じポート番号でサーバー側ルーターが
受けなければいけません。
その折には、そのポート番号が静的NATで、ポート番号はもちろんそのまま、
IP
はサーバーのマシンのローカルIPを指定するわけですよね
それができていれば、サーバーのハブの設定ではありませんか。


VPN  投稿者:inaba  投稿日:10月29日(金)08時52分04 [356]

いまだに旅先で、VPNZEROのテストはそこのLAN内でやってます。
ZERO
の解像度の問題は、ホスト側1600X900をクライアント1024X768で表示させると見にくいようです。ホストとクライアントを逆にすると鮮明に見えました。
VPN
ZEROのポートは同じにしたら、やはりだめでした。
仮想LANで両端がルータ越しの場合、サーバ側にVPNのポート番号(XXX)を静的NATでサーバに導くだけでZEROのポート番号(YYY)は解決できるのでしょうか?
それとも「ポート番号変換」(XXX→YYY)みたいな設定をしなければいけないのでしょうか?


VPN  投稿者:kourogi  投稿日:10月28日(木)20時29分39 [355]

1は 完全に通信速度によるものですから、モバイル系のネットでは遅さを感じますよね。
両方が光通信であれば、全画面表示しても、快適なんですが、
音声は消していますよね、
2.
のポートですがVPNのポートとZEROのポートは一緒であってはいけません、
ZERO
のポートは操作するためだけのポートであり、VPNとは関係ありません。

VPN
はまだ繋がっていませんかね、VAIO内蔵のWIMAXでも、モバイルで外出先から快適に操作しています、
店舗からトラブルがあったときは、車をちょっと止めて繋げていますよ。


ZERORemote  投稿者:inaba  投稿日:10月28日(木)12時32分15 [354]

を入れてみました。LAN内では問題なく動きました。リモート操作はやったことありませんでしたので、ちょっと感動しました。
kourogi
さんに質問です。
1)クライアント側のモニターに写るサーバのデスクトップの解像度が非常に悪いのですが、実際に細かい操作をするにはやや困るんじゃないかと思いますが。どうされていますか?
2)simousa+zeroremoteで使う場合は、ポート番号は同一のものにしなければならないのでしょうか?


VPN  投稿者:inaba  投稿日:10月28日(木)07時54分39 [353]

kourogiさん、コメントありがとうございます。その後、ARAGOのごきげんはいかがですか? やはりこまめにreleaseすることが大切かと。
VPN
ですが、ルータの静的マスカレード、グローバルIPDDNS解決、すべてOKのはずです。ウィルスチェッカーは入れてません(魚!)。
ひょっとしてハブをメモリーにロードしただけで、稼動してないのか・・? 何しろ旅先なので確かめようがありません。
すみません、いいかげんな質問で。
うまく動くようになったら、ZERORemote試してみます。


VPN  投稿者:kourogi  投稿日:10月27日(水)23時45分01 [352]

原因は多伎にわたって考えられます、
1.
ルーターを通している場合、サーバーでポートの変換は指定されていますか

 ポートを7777とした場合、ルーターの静的IPマスカレード設定をルーターにてエントリします、
サーバーのローカルIPアドレスが192.168.1.2なら
変換ポートを7777に、あて先ポートも同じ、
でも行き先は192.168.1.2に設定しておかないと、
グローバルIPでルーターに飛び込んできたあと、
どのパソコンに行けばいいのか指示が必要です。

2.
クラアント側のホスト名またはIPアドレスは固定されていますか、DICEなどを使ってDNSの更新をかけてIPの変更をしてやらないと、グローバルIPは変わってしまいます。

3.
その他ほとんどの場合がセキュリティソフトです。停止してからセキリティを終了し、試してみて下さい。

4.
あとはVPNのヘルプを見て、設定が合ってるか確認してください。

このVPNソフトと ZERORemote というリモートソフトで自宅のパソコンを
会社のPCに出して、自由自在に操作ができ、とても快適です。


VPN  投稿者:inaba  投稿日:10月27日(水)15時26分48 [351]

kourogiさんご推奨のsimousaですが、旅行前に自宅のサーバにハブを設定し、
旅先から繋ごうとしてもうまくいきません。
同じような設定で、本物のLANではうまくいきます。
どんなことが考えられるでしょうか?


Webカメラ  投稿者:inaba  投稿日:10月27日(水)13時35分39 [350]

デバイスマネージャで調べたら、カメラの名前みたいなものと、それを動かすドライバというかソフトの名前みたいなものの2つがありました。
私の試したのはカメラの名前(hoge CAM)で、これは落ちちゃいます。
もうひとつの方(fugaSoft mm Manager)で試したら、すんなりキャプチャ画像ができてました。
この2つのデバイス名はどういう関係なんでしょうか?


 投稿者:x  投稿日:10月27日(水)12時36分55 [349]

Win7ではためしていません内臓WEBカメラでもokです何もせずに正常終了するのはデバイス名が違っているのでしょうデバイスマネージャのビデオのところでデバイス名を確認してみてください


capture関数  投稿者:inaba  投稿日:10月27日(水)12時12分51 [348]

あいかわらず旅先ですが、内臓WEBカメラのついたWin7が使えるので、
以前、xさんが作られたcaputure関数を試してみました。
カメラを起動しておいて、
EXTERN CVOID capture(CSTRING,CSTRING,CINT) capture001.dll
capture('hoge CAM','sample.bmp',700)
を実行したら、ARAGOが落ちちゃいました。
カメラを起動せずにdoすると、何もせずに正常終了します。
外付けデバイスじゃないとだめなのでしょうか?


第2掲示板  投稿者:inaba  投稿日:1026日(火)2144分53 [347]

せっかくのxさんの掲示板、あまり知られていないのが残念ですが、ARAGO仲間で知っている人にはとても貴重なものと思います。
セキュリティー強化した第2掲示板ということにはなりませんか?
いま旅行中で、思うようにPCあやつれないのですが、閉鎖は思いとどまっていただければ幸いです・・。


 投稿者:x  投稿日:10月26日(火)13時50分10 [346]

inabaさんわざわざありがとうございますみなさんの貴重な書き込みがもったいなく申し訳ないのですが閉鎖しようと思っています


掲示板スパム  投稿者:inaba  投稿日:1026日(火)1219分56 [345]

xさん、掲示板スパムじゃないでしょうか?
検索してみると、board.cgi名の変更、掲示板へのリンクをJavascriptで処理、というのがありました。
http://antispam-bbs.xii.jp/index.html


ARAGO  投稿者:kourogi  投稿日:10月24日(日)22時00分12 [343]

今はプログラムが頻繁に変わるのでコンパイルしていませんでした
そのためARAGOW.INIのことしか思いつきませんでした。
すみません、もう少し言葉を考えて質問します、申し訳ありませんでした。


 投稿者:x  投稿日:10月24日(日)15時14分42 [342]

INIファイルについての私の下記の書き込みはコンパイル後のsample.exesample.iniについてのことですコンソール画面が使えない!などとARAGOW.INIを変更するというのはまったく想定外です
PRIVATE
宣言、PUBLIC宣言がセーブされているのかがわかりませんリストアするとPRIVATEPUBLICのどちらになるのかもわかりません
kourogi
さんの書き込みの内容が難しいものと初歩的なものと混じるので答えにくいです


ARAGO  投稿者:kourogi  投稿日:10月23日(土)19時17分41 [340]

以下ではメモリのそうじだけではなく
プライベート宣言もクリアされてしまうのでしょうか
メモリがうまく戻りません
rest from <> addi
 を追加にしていますが
初期化にしても同じです。

* DEACTIVATE DIALOG HyojiPNL
* SAVE TO TEMP.mem ALL
* CLEA MEMORY
* REST FROM TEMP.mem addi
* ACTIVATE DIALOG HyojiPNL modeless


ARAGO  投稿者:kourogi  投稿日:10月22日(金)21時15分44 [338]

はい、正常な位置に戻りました、アラゴの枠も表示されません。
ただ、コンソール画面が使えないので、
納品時にこのように設定すればOKですね。
コンパイルしても、この設定にしておかないと
枠は出てしまうのでしょうか。


 投稿者:x  投稿日:10月21日(木)23時01分30 [337]

MainWindowがみっともなく表示されるということで表示位置を3000(水平位置),2000(垂直位置)と画面の外に出しました
MainWindowPos=0,1,-1,-1,-1,-1,0,-40,0,0
とするとどうですか?読み取り専用に変更しなくてもokのようです


arago  投稿者:kourogi  投稿日:10月21日(木)20時13分35 [335]

見えないようになりますが
ダイアログが、サブモニターのほうに写ります
1024*720
800*600の2モニター使用になっていて
ダイアログを開くと、この2つのモニターの真ん中に表示されてしまいます。


arago  投稿者:kourogi  投稿日:10月21日(木)19時55分25 [334]

xさん、今iniファイルご指導どおりにしてみました
前回、見えないように修正してしまったので
元に戻してみます。
バックパネルといえども、1枚のダイアログを減らせるので
意義ある対策です。


 投稿者:x  投稿日:10月21日(木)16時01分08 [333]

基幹のダイアログをdeactivateしたら再度activateするまでaragowが表示されませんか?と書きましたが
xxx.ini
ファイルを
[Windows]
MainWindowPos=0,1,-1,-1,-1,-1,3000,2000,0,0
などと編集してiniファイルのプロパティを読み取り専用に変更するとMainWindowを非表示にすることができますね
メモリについてはできるだけそれぞれ個別のexeにして起動するexe1つだけにしてその都度起動終了するのほうが確実だと思います


 投稿者:x  投稿日:10月21日(木)09時33分21 [329]

aragowのダウンの原因がわかりませんがSAVE TOCLEAR ALLRESTORE FROMでダウンが解消されればいいと思います


arago  投稿者:kourogi  投稿日:10月19日(火)14時53分59 [326]

みなさん本当にありがとうございます
私なんかの為に、こんなに指導頂けて感謝します。
inaba
さん そこまでありません、せいぜい20ほどです。
x
さん メモリをSAVEして all clea で消去して リストアするのではダメなんでしょうか


 投稿者:x  投稿日:10月19日(火)14時40分56 [325]

特にレジの途中で落ちるのが最悪のPOSレジスタは個別のexeとする
できるだけそれぞれ個別のexeにして起動するexe1つだけにしてその都度起動終了することで以前にあった下記のようなことも改善するかもしれません
時間があいたときに、メモリを整理するというのか
いったんメモリをセーブして、クリーンにする処理をしてアラゴを再起動してメモリを戻す的なこと
メモリについては1日に何回かaragowを再起動すれば済むことなのかも


ARAGOの制限  投稿者:inaba  投稿日:1019日(火)1145分43 [322]

> exe1
>
その2つのexeの中には、同じプログラム部分がある
set udf
なり set procedure に共通プログラムを入れて、まるごとコンパイルというイメージですね。
まさかとは思いますが、1つのファイルに入れられるプロシージャやUDFは193までという制限違反・・ってことはありませんか?


ARAGO  投稿者:kourogi  投稿日:10月19日(火)10時37分29 [321]

exe1
処理別にexeを作ると、どのexeでも使う共通の処理プログラムは
それぞれのexeに入れてやら無いといけないという意味です

他にも納品伝票を見てたら、3行目の品番の商品の行方を調べたいときに
3
行目のボタンで在庫情報のプログラムが起動するのですが
納品伝票exeの中から情報exeを呼び出すことになる、
その2つのexeの中には、同じプログラム部分があるのに
2
exeを実行することになります。

DOS
のころは、そんな贅沢なメモリの使い方はできませんでしたから
そのクセがあるのでしょうね、
考えればwindowsのメモリは桁違いですから。


プログラム設計  投稿者:inaba  投稿日:1019日(火)0623分57 [320]

> 個々の処理が繋がっているのはメニューだけで
>
基本的には1処理が終了すると、このメニューに帰ってきます。
メニューも含めてexeは1本? それともメニューから個別exeを呼び出す?
>
各処理 共通で使用するプログラムが多く、1本に繋げています。
これ、どういう意味でしょう?


ARAGO  投稿者:kourogi  投稿日:10月19日(火)02時18分35 [319]

315はスルーでいいですよね
個々の処理が繋がっているのはメニューだけで
基本的には1処理が終了すると、このメニューに帰ってきます。
on error
 の設定があり、ログを残して retu to masterとしてエラー対策しています。
各処理 共通で使用するプログラムが多く、1本に繋げています。


ARAGO  投稿者:kourogi  投稿日:10月19日(火)02時00分40 [318]

トランザクション処理でやってます。
たとえば 納品伝票ファイルは自店のクライアントである店舗レジに登録し
サーバーにも送信してサーバーの納品ファイルにも追加されます
もし、サーバーが切れていたら、自店のクライアントPCの納品ファイルにフラグをたてて、通信再会時に送信します。
従ってクライアントの納品ファイルにはその店舗のみの
サーバーには全店のデーターがあります。


 投稿者:x  投稿日:10月19日(火)00時54分53 [317]

VPNを利用するにしてもaragowは銀行のATMのようなトラ ンザクション処理はできません1台のPOSレジスタに1個のデータベースやインデックスを割り当ててスタンドアローンで動かしレジ業務終了後に各POSレ ジスタに割り当てたデータベースを集計してインデックスを再構築し各POSレジスタに割り当てるデータベースやインデックスを再セットし1日の業務を終了 するという流れでしょうか
PC
は壊れますからinabaさんが「やらせる仕事が、システムとして組みあがってない個別のプログラムなら・・・」というように納品入力、正札タグ発 行、返品、店舗移動、たな卸し、日報精算、顧客管理、在庫管理、タイムカードと出勤表、出勤予定表、POP管理はできるだけそれぞれ個別のexeのほうが安全でいいと思いますinabaさんのいう「処理する個々のプログラムがシステムとしてみんな繋がっている」ですとメインテナンスが気が遠くなるでしょうし最悪全部ダウンし業務が停止します
315
の書き込みは何なのでしょう???


ARAGO  投稿者:kourogi  投稿日:10月18日(月)23時53分07 [316]

311のプログラム
とてもスムーズに開きます
流れは分かるのですが
システムの変更は自信がありません
不要なダイアログを調査してみます。


ARAGO  投稿者:kourogi  投稿日:10月18日(月)11時15分18 [314]

SHIMOUSAVPNは 他の有料VPNより安定しており
DICE
DNSを固定してIPを更新しています。
\\nagoya\data\
のように、通常のLANと、同一でOKです
しかも光なら超早い、POSデータもこれで送信しています。
以前は店舗BGMも配信していましたがJASRACを打ち切ったので
BGM
はなくなりました。
inaba
さん、能力ないなんてとんでもない、またパスは残念です。
レジ屋が作るPOSレジと違って、現場でのユニークな発想がいっぱいつまったPOSレジは
当初150万で買って3ヶ月でお蔵入りになったPOSレジより
作業手順そのものは自信あるのですが
プログラムには自信がない
x
さん inabaさん がまず、どんなものかだけでも
見ていただければ、アクロバットプログラムは
指摘だらけであること間違いなし の自信ありです。
予備用の単独テストマシンが用意してあり、
VPN
で接続して頂けたら、自由に見ることができます。


インターネットVPN  投稿者:inaba  投稿日:1018(月)1002分18 [313]

> 一度見ていただいて、助言頂けないでしょうか
kourogi
さん、能力ありませんので私はパスですが・・。
もし、やらせる仕事が、システムとして組みあがってない個別のプログラムなら、使ってないプログラムは閉じてしまえばいいような気がしますが・・。
処理する個々のプログラムがシステムとしてみんな繋がっているのなら、組み替えるのは気が遠くなるような作業ですね。
それにしても、インターネットVPN、まったく知りませんでした。
ARAGOで作ったLAN対応プログラムが実際のLANと同じように動くのならすごいですねえ・・。
インターネット越しのPRGはhttpを使ったaragoiaragowの連携しか考えたことがありませんでした。
kourogi
さんのお困りの問題とは無関係な話で恐縮ですが、ちょっと勉強してみようと思います。


ARAGO  投稿者:kourogi  投稿日:10月17日(日)23時16分59 [312]

実際のシステムはPOSレジに納品入力、正札タグ発行、返品、店舗移動、たな卸し、日報精算、顧客管理、在庫管理、タイムカードと出勤表、出勤予定表、POP管理、すべてが処理されます、
http://www.shimousa.com/tv/tv5.htm
 のVPNを利用して4店舗と倉庫が繋がっています。
一度見ていただいて、助言頂けないでしょうか、もちろん報酬は別途ご相談させて頂きます。gomi@syaruru.com は私の一時アドレスです。
最近は年のせいか、頭の回転のにぶりを感じます。


 投稿者:x  投稿日:10月17日(日)13時39分39 [311]

*ダイアログのサイズを変えた場合
*
ダイアログだけでアプリケーションの骨格を作る
Extern CINT GetSystemMetrics(CINT) USER32.DLL
Title_H = GetSystemMetrics(4)
store 0 to flag04
define dialog dialog01 at -Title_H, 0.0 size Title_H+_VSIZE,_HSIZE NOSYSTEMMENU NOCLOSE NOMOVE color 255,255,255
define dialog dialog02 at _VSIZE*0.1, _HSIZE*0.1 size _VSIZE*0.8,_HSIZE*0.8 NOSYSTEMMENU NOCLOSE NOMOVE color 255,255,255
define dialog dialog03 at _VSIZE*0.18, _HSIZE*0.18 size _VSIZE*0.64,_HSIZE*0.64 NOSYSTEMMENU NOCLOSE NOMOVE color 255,255,255
define dialog dialog04 at _VSIZE*0.1, _HSIZE*0.1 size _VSIZE*0.8,_HSIZE*0.8 NOSYSTEMMENU NOCLOSE NOMOVE color 255,255,255
define dialog dialog05 at _VSIZE*0.18, _HSIZE*0.18 size _VSIZE*0.64,_HSIZE*0.64 NOSYSTEMMENU NOCLOSE NOMOVE color 255,255,255
define dialog dialog06 at _VSIZE*0.244, _HSIZE*0.244 size _VSIZE*0.512,_HSIZE*0.512 NOSYSTEMMENU NOCLOSE NOMOVE color 255,255,255
define text text01 of dialog01 at 20,20.0 prompt "
基幹"
define text text01 of dialog02 at 20,20.0 prompt "
"
define text text01 of dialog03 at 20,20.0 prompt "
"
define text text01 of dialog04 at 20,20.0 prompt "
ひ孫"
define text text01 of dialog05 at 20,20.0 prompt "
"
define text text01 of dialog06 at 20,20.0 prompt "
ひ孫"
define pushbutton s1 of dialog01 prompt "
表示" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog01 prompt "
終了" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog01 function01()
define pushbutton s1 of dialog02 prompt "
表示" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog02 prompt "
戻る" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog02 function02()
define pushbutton s1 of dialog03 prompt "
表示" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog03 prompt "
戻る" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog03 function03()
define pushbutton s1 of dialog04 prompt "
表示" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog04 prompt "
戻る" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog04 function04()
define pushbutton s1 of dialog05 prompt "
表示" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog05 prompt "
戻る" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog05 function05()
define pushbutton s1 of dialog06 prompt "
終了" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog06 prompt "
戻る" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog06 function06()
activate dialog dialog01 modal
return
function function01
do case
case PANEL()="S1"
activate dialog dialog02 modal
do case
case flag04=1
activate dialog dialog04 modal
store 0 to flag04
endcase
case PANEL()="S2"
deactivate dialog dialog01
endcase
return .t.
function function02
do case
case PANEL()="S1"
activate dialog dialog03 modal
case PANEL()="S2"
deactivate dialog dialog02
endcase
return .t.
function function03
do case
case PANEL()="S1"
deactivate dialog dialog02
deactivate dialog dialog03
store 1 to flag04
case PANEL()="S2"
deactivate dialog dialog03
endcase
return .t.
function function04
do case
case PANEL()="S1"
activate dialog dialog05 modal
case PANEL()="S2"
deactivate dialog dialog04
endcase
return .t.
function function05
do case
case PANEL()="S1"
activate dialog dialog06 modal
case PANEL()="S2"
deactivate dialog dialog05
endcase
return .t.
function function06
do case
case PANEL()="S1"
deactivate dialog dialog04
deactivate dialog dialog05
deactivate dialog dialog06
case PANEL()="S2"
deactivate dialog dialog06
endcase
return .t.


 投稿者:x  投稿日:10月17日(日)01時53分40 [310]

長時間動かし続けるための方法がないかと言うことです
kourogi
さんのアプリケーションを一度試験的にダイアログをお互い隠れないように小さく変更して動かしてみてダイアログの親子関係などがどう動いているのかダイアログの系統図を作ってみるとプログラムの構造が明確になると思います
いつまでも表示されている不要なダイアログがないか
一度に表示されているダイアログの数が多すぎないか
先へ先へと進む一方のプログラムならばメモリのゴミ(利用されないメモリ)が徐々に増えるのではないか
などダウンに関係するかもしれないと勝手に考えました
303
はあくまで参考でkourogiさんのアプリケーションに当てはまるのかはわかりません(何度も見当違いしていますので;exe2つ使われているのであればすでに当てはまりませんね)


ARAGO  投稿者:kourogi  投稿日:10月16日(土)21時07分59 [309]

xさんの言われるのは、ダイアログが重なることより、
基幹で一括定義しておいて、処理をプロシジャーで飛ばして終了したら帰らせることですね


ARAGO  投稿者:kourogi  投稿日:10月16日(土)19時48分07 [308]

307->基幹のダイアログをdeactivateしたら再度activateするまでaragowが表示されませんか?
そうなんです、みっともなくされます。
比較的簡単な処理部分から307型にしてみます。


 投稿者:x  投稿日:10月16日(土)19時11分54 [307]

基幹のダイアログをdeactivateしたら再度activateするまでaragowが表示されませんか?そこですべての処理をするというのは複雑でわかりにくいと思いましたが人ぞれぞれなのでしょう
303
は基幹から派生して必ず基幹に戻るプログラム(系統的なダイアログとなる)の例で骨格さえできればそこはさわらないであとはそれぞれのダイアログでの処理をプログラミングするだけですkourogiさんの個々のダイアログをそのままはめ込めばいいかと思います


ARAGO  投稿者:kourogi  投稿日:10月16日(土)16時47分10 [305]

303のプログラムは理解できますが
かなり整理して記述しないと
2度とさわれなくなりそうですね


ARAGO  投稿者:kourogi  投稿日:10月16日(土)16時45分19 [304]

302>>
以下のように基幹のダイアログを閉じてから
処理を実行するようにしたのですがダメでしょうか

m_PANEL=""
DO WHIL .T.
ACTIVATE DIALOG POP__PNL MODAL
DO CASE
CASE m_PANEL="
戻る"
EXIT
CASE m_PANEL="
処理"
DO
処理
ENDC
ENDD
cancel

FUNCTION NPane030
m_PANEL=PANEL()
DEACTIVE DIALOG POP_PNL
RETERN .T.


 投稿者:x  投稿日:10月16日(土)09時48分25 [303]

*ダイアログだけでアプリケーションの骨格を作る
store 0 to flag04,flag07
define dialog dialog01 at 100.0, 100.0 size 210.0, 297.0 color 255,255,255
define dialog dialog02 at 100.0, 400.0 size 210.0, 297.0 color 255,255,255
define dialog dialog03 at 100.0, 700.0 size 210.0, 297.0 color 255,255,255
define dialog dialog04 at 300.0, 100.0 size 210.0, 297.0 color 255,255,255
define dialog dialog05 at 300.0, 400.0 size 210.0, 297.0 color 255,255,255
define dialog dialog06 at 300.0, 700.0 size 210.0, 297.0 color 255,255,255
define dialog dialog07 at 500.0, 100.0 size 210.0, 297.0 color 255,255,255
define text text01 of dialog01 at 20,20.0 prompt "
基幹"
define text text01 of dialog02 at 20,20.0 prompt "
"
define text text01 of dialog03 at 20,20.0 prompt "
"
define text text01 of dialog04 at 20,20.0 prompt "
ひ孫"
define text text01 of dialog05 at 20,20.0 prompt "
"
define text text01 of dialog06 at 20,20.0 prompt "
ひ孫"
define text text01 of dialog07 at 20,20.0 prompt "
ひ孫"
define pushbutton s1 of dialog01 prompt "
表示" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog01 prompt "
終了" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog01 function01()
define pushbutton s1 of dialog02 prompt "
表示" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog02 prompt "
戻る" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog02 function02()
define pushbutton s0 of dialog03 prompt "
表示1" at 100.0,40.0 size 20.0,60.0
define pushbutton s1 of dialog03 prompt "
表示2" at 100.0,120.0 size 20.0,60.0
define pushbutton s2 of dialog03 prompt "
戻る" at 100.0,200.0 size 20.0,60.0
on selection dialog dialog03 function03()
define pushbutton s1 of dialog04 prompt "
表示" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog04 prompt "
戻る" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog04 function04()
define pushbutton s1 of dialog05 prompt "
表示" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog05 prompt "
戻る" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog05 function05()
define pushbutton s1 of dialog06 prompt "
終了" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog06 prompt "
戻る" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog06 function06()
define pushbutton s1 of dialog07 prompt "
終了" at 100.0,80.0 size 20.0,60.0
define pushbutton s2 of dialog07 prompt "
戻る" at 100.0,160.0 size 20.0,60.0
on selection dialog dialog07 function07()
activate dialog dialog01 modal
return
function function01
do case
case PANEL()="S1"
activate dialog dialog02 modal
do case
case flag04=1
activate dialog dialog04 modal
store 0 to flag04
case flag07=1
activate dialog dialog07 modal
store 0 to flag07
endcase
case PANEL()="S2"
deactivate dialog dialog01
endcase
return .t.
function function02
do case
case PANEL()="S1"
activate dialog dialog03 modal
case PANEL()="S2"
deactivate dialog dialog02
endcase
return .t.
function function03
do case
case PANEL()="S0"
deactivate dialog dialog02
deactivate dialog dialog03
store 1 to flag04
case PANEL()="S1"
deactivate dialog dialog02
deactivate dialog dialog03
store 1 to flag07
case PANEL()="S2"
deactivate dialog dialog03
endcase
return .t.
function function04
do case
case PANEL()="S1"
activate dialog dialog05 modal
case PANEL()="S2"
deactivate dialog dialog04
endcase
return .t.
function function05
do case
case PANEL()="S1"
activate dialog dialog06 modal
case PANEL()="S2"
deactivate dialog dialog05
endcase
return .t.
function function06
do case
case PANEL()="S1"
deactivate dialog dialog04
deactivate dialog dialog05
deactivate dialog dialog06
case PANEL()="S2"
deactivate dialog dialog06
endcase
return .t.
function function07
do case
case PANEL()="S1"
deactivate dialog dialog07
case PANEL()="S2"
deactivate dialog dialog07
endcase
return .t.


 投稿者:x  投稿日:10月16日(土)05時12分25 [301]

DO WHIL .T.
    ACTIVATE DIALOG POP__PNL MODAL
    DO CASE
        CASE m_PANEL="
戻る"
            EXIT
        CASE m_PANEL="
処理"
            DO
処理
    ENDC
ENDD
上記ではDEACTIVATE DIALOG POP__PNL MODALされなければ処理が行われない
処理は前のようにFUNCTION NPane030の中で
FUNCTION NPane030
    DO CASE
        CASE m_PANEL="
戻る"
*            EXIT
        CASE m_PANEL="
処理"
            DO
処理
    ENDC
RETERN .T.
でいいのでしょう


ARAGO  投稿者:kourogi  投稿日:10月16日(土)02時15分27 [296]

こんな感じに変えました
DEFINE DIALOG POP__PNL

DEFINE BMPB POPEDIT
DEFINE BMPB modoru
ON SELECTION DIALOG POP__PNL NPane030()
m_PANEL=""
DO WHIL .T.
ACTIVATE DIALOG POP__PNL MODAL
DO CASE
CASE m_PANEL="
戻る"
EXIT
CASE m_PANEL="
処理"
   DO 処理

ENDC
ENDD
RELEASE DIALOG POP__PNL
RETU
----------
FUNCTION NPane030
m_PANEL=PANEL()
do case


ARAGO  投稿者:kourogi  投稿日:10月16日(土)01時32分48 [295]

EXE2つ出ています、気になっていました
基幹のプログラムの中で関数やプロシジャーを多用しています。


 投稿者:x  投稿日:10月16日(土)01時32分04 [294]

EDIT_PNLPOP__PNLの裏に回る場合がありますダイ アログが裏に回ったときはALT+TABで元に戻せるのですとありますが[Alt]+[Tab]はアプリケーションを切り替える操作ですからもしそうなの であれば一つのexe内でEDIT_PNLPOP__PNLdialog同士で裏に回るということではなくEDIT_PNLPOP__PNL exeが両方起動されていてexe同士で表になったり裏になったりするということになりますdialog同士を想定した私の下記の書き込みはまた見当違いとなりますアクロバットプログラムとは出発点に戻ることなく先へ先へと進む一方のプログラムなのでしょうか・・・使用するダイアログだけでアプリケーションの骨格を作れればわかりやすくなるでしょうかその際ダイアログを画面全体に表示すると表示されたまま残ってしまうなどのダイアログの関係が確認できないのでお互い隠れないように小さいダイアログで表示してみるのがいいと思います


 投稿者:x  投稿日:10月14日(木)18時31分42 [289]

メモリについては1日に何回かaragowを再起動すれば済むこと なのかもしれません。そうしないで長時間動かし続けるための方法がないかと言うことです。基幹のDIALOG→ひ孫で自身がひ孫でも子、孫を DEACTIVATEすれば自身が子に昇格すると思います。


ARAGO  投稿者:kourogi  投稿日:10月14日(木)12時46分44 [287]

そこらあたりが
inaba
さんがおっしゃったアクロバットプログラムなので
原因として十分に考えられます。
286->
メモリの宣言をきちんとしておくことは
使用するメモリについても、初頭でPRIVATE宣言が必要でしょうか
1
つのプログラムにまとめると、6000行を超えます。
私の頭が超えれないような・・・


 投稿者:x  投稿日:10月14日(木)09時32分59 [286]

以下aragowのダウンやEDIT_PNLPOP__PNLの裏に回るに関係がありそうなことを推測しました
押されたボタンによって2つ目のDIALOGの仕様が変わる場合
メモリの宣言をきちんとしておくことは重要かもしれません。ということでDIALOGの仕様が変わる場合でも一旦基幹のプログラム(基幹のDIALOG)で定義する(押されたボタンによって仕様が変わるところだけFUNCTION NPane030の中で再度変える)
押されたボタンによって次のプログラム(次のDIALOG)に飛んでいる場合
まとめてもまとめなくてもメモリ上は大きくなってしまうのでしょう
大きくなってしまってもまとめて基幹のプログラム(基幹のDIALOG)は一つにして店のロゴ表示(^∇^)そこから子プログラム(子のDIALOG)を 派生させ必ず基幹のプログラム(基幹のDIALOG)に戻してから(子や孫のDIALOGDEACTIVATEしてから)次の子プログラム(子の DIALOG)に飛ぶようにする


ARAGO  投稿者:kourogi  投稿日:10月13日(水)20時45分46 [280]

DEFINE DIALOG をまとめる場合
1つ目のDIALOGで押されたボタンによって2つ目のDIALOGの仕様が変わる場合
同時に2つ目は設定しておけません
1つ目のDIALOGで押されたボタンによって次のプログラムに飛んでいる場合も
まとめるには大きくなってしまうので困難な状況です
まとめることの出来る部分はかなり少ないようです。
しかし、不要になったパネルはDEACTIVEするようにしてみます。


ARAGO  投稿者:kourogi  投稿日:10月13日(水)11時51分49 [278]

inabaさん すみません、説明が悪いものですから手間かけさせてしまって
ARAGO
自体のブルーボーダーを消すために
画面いっぱいのダイアログを -26.0で 消しています。
コンパイルはしていません。

x
さん 使用するパネルをまとめて 基幹のプログラムで定義してしまうということでしょうか、試行錯誤してみます


 投稿者:x  投稿日:10月13日(水)03時46分15 [275]

Extern CINT GetSystemMetrics(CINT) USER32.DLL
Title_H = GetSystemMetrics(4)
DEFINE DIALOG POP__PNL at -Title_H, 0.0 size _VSIZE,_HSIZE NOSYSTEMMENU NOCLOSE NOMOVE
DEFINE DIALOG EDIT_PNL &&
ここに入れればFUNCTION NPop_030の呼び出し回数に関係なく1回だけになりませんか
*
*
*


ARAGO  投稿者:kourogi  投稿日:10月13日(水)01時50分15 [273]

パネルの場合、開始Y座標をマイナスにすると
ブルーボーダーはそのままで
中のオブジェクトが上に上がって行きます。


ARAGO  投稿者:kourogi  投稿日:10月12日(火)21時24分51 [272]

マイナスの指定はダイアログで使用していますが
パネルにすると 表示されたままです
V6.2
です。
Y
軸は -28.0 ほどしていますが パネルにすると効果がありません。


マイナス表記  投稿者:inaba  投稿日:1012日(火)2034分09 [271]

> define panel p1 from -25.0, -4.0 としても
> 0,0
から表示されてしまいます
マイナスを指定することによって青いメニューバーのようなものが見えないということです。
マイナスの値を大きくしてテストしてみてください。
ただ、モニターのプロパティで、WinclasicXPやらで少しずつ異なります。


ARAGO  投稿者:kourogi  投稿日:10月12日(火)19時55分19 [270]

define panel p1 from -25.0, -4.0 としても
0,0
から表示されてしまいます
コンパイルすると出ないのですか


panel  投稿者:inaba  投稿日:10月12日(火)19時17分35 [269]

> 以前は1つめのダイアログをパネルにしていたのですが
>
上の青い帯が出ること、
コンパイルした後のEXEですか?
* panel
定義
define panel p1 from -25.0, -4.0
のようにマイナスの値を設定すればOKでしょう。
>
指定もしていないのに メニュー・閉じる は勝手に出てくる
どうしても[]を押されると困るときは以下のようにしています。
メインPRGに
on event "close" notclose()
UDFファイルに
* notclose
function notclose
wait("
メニューまたはツールバーから終了してください。)
return .f.
そういえば、xさんのDLLにあったような・・。
記憶違いでしょうか?


ARAGO  投稿者:kourogi  投稿日:10月12日(火)18時58分40 [268]

ダイアログが裏に回ったときは
ALT+TAB
で元に戻せるのですが、
それを知らないスタッフは電源ごと切ってしまい
ハードディスクが壊れていきます。

でもご迷惑・・の時は すべてダイアログを重ねるときに起きています。


ARAGO  投稿者:kourogi  投稿日:10月12日(火)18時17分33 [267]

以前は1つめのダイアログをパネルにしていたのですが
上の青い帯が出ること、
指定もしていないのに メニュー・閉じる は勝手に出てくる
□_x
のメニューはoffにしても出てくるなどで
使用していません

266>x
さんの言われるのは253のプログラムだと
どのようになるのでしょうか。


 投稿者:x  投稿日:10月12日(火)14時18分59 [266]

すいませんdialogについての私の書き込み見当違いだったようです
253
のプログラムはこれでいいのしょうどうしてEDIT_PNLPOP__PNLの裏に回るのかはわかりません
FUNCTION NPane030
の中にDEFINE DIALOG EDIT_PNLがありDEFINE DIALOG EDIT_PNLが繰り返されることになるのでaragowのダウンに関係があるのかもしれません
できればプログラム内のすべてのDEFINE DIALOGをどこかでまとめて1回だけにするのはどうでしょう


panel+dialog  投稿者:inaba  投稿日:10月12日(火)13時19分27 [264]

> MODELEssのダイアログで押されたpushbuttonEDT_PNLを出したい
無理だと思います。modelessactivateされた瞬間に制御は次の行に移ると、
ヘルプに書いてあります。
画面いっぱいのpanelを作り、ボタンを押すと右X%にdialogを出せばどうでしょう。dialogを終了しない限り、panelに制御はわたらないはずですね。


ARAGO  投稿者:kourogi  投稿日:10月12日(火)11時36分36 [263]

inabaさんお手数おかけしました、
わざわざありがとうございます。
下記の例はバックスクリーンに使うだけなら分かるのですが
MODELEss
のダイアログで押されたpushbuttonEDT_PNLを出したいのですが
その工夫が飲み込めません。


modeless  投稿者:inaba  投稿日:10月12日(火)06時25分20 [262]

> というと下記のプログラムの要領ではダメですね
> modeless
のままloopしていないと
arago
のヘルプにはmodelessの例としてヘルプウィンドウを表示すると書いてあった気がします。
*---
こんなふうにするとどうでしょう。
tp1="
表示内容だけで\nイベント処理はしない\n  ・\n  ・\n  "
DEFINE DIALOG POP__PNL at 0.0,0.0 size _vsize,_hsize
define text t1 of POP__PNL prompt tp1 at 10.0,10.0
ACTIVATE DIALOG POP__PNL MODeless
syori()
*--------
function syori
*
イベント処理用ダイアログ
DEFINE DIALOG EDT_PNL at 100.0,100.0 size 300.0,500.0
DEFINE pushbutton s1 of EDT_PNL prompt "edit" at 10.0,10.0 size 20.0,60.0
DEFINE pushbutton s2 of EDT_PNL prompt "modoru" at 10.0,100.0 size 20.0,60.0
ON SELECTION DIALOG EDT_PNL NPOP_030()
ACTIVATE DIALOG EDT_PNL MODAL
RELEASE DIALOG EDT_PNL
RETU .t.
*-------------
FUNCTION NPop_030
do case
case PANEL()="S1"
*
処理
case PANEL()="S2"
DEACTIVATE DIALOG Edt_PNL
DEACTIVATE DIALOG POP__PNL
RELEASE DIALOG POP__PNL
endc
retu .t.


サーバ  投稿者:inaba  投稿日:1012日(火)0527分08 [261]

レンタルサーバにもいろいろなタイプがあるみたいですが、
プロバイダの無料WEBサービス(UNIX系OS+Apache)で試しましたら、
アクセス許可やらなんやら一切なしで、新しいディレクトリ作ってファイルほおりこんでアクセスできましたよ。
x
さんのこのHPもそうですか?


ARAGO  投稿者:kourogi  投稿日:10月11日(月)22時38分45 [260]

inabaさん いろいろと詳しいのですね、
サーバーの件は私にはムリなのであきらめました。
要は、deactivateを、ボタンを押したら実行・
というと下記のプログラムの要領ではダメですね
modeless
のままloopしていないと


modeless  投稿者:inaba  投稿日:10月11日(月)21時41分00 [259]

modelessタイプのdialogはフツーにdeactivateするとあっというまに終了。
要は、deactivateを、ボタンを押したら実行・・みたいにすればずーっと出っ放しというわけです。


modeless  投稿者:inaba  投稿日:10月11日(月)20時48分49 [258]

modelessを維持しながら、不要になったらdiactivateすればよいかと。


arago  投稿者:kourogi  投稿日:10月11日(月)20時44分55 [256]

xさん ほとんどが新しいdialogを出そうとしたときに落ちます
ほぼ 間違いないと思います


arago  投稿者:kourogi  投稿日:10月11日(月)20時33分11 [255]

inabaさん 1つめのPOP__PNLmodelesにしてしまうと POP__PNLBMPボタンは押せずに次のEDIT_PNLに移動してしまうのではないでしょうか

例えば下記のままで
ACTIVATE DIALOG POP__PNL MODELES
 だと、一瞬で retunで終了してしまいますよね


modeless  投稿者:inaba  投稿日:10月11日(月)20時26分40 [254]

> dialog2のバックスクリーンは表示しておきたいからです
なら、modelesにすればいいのじゃ? 確信ありませんけど・・。
私はけっこう使ってますよ。


arago  投稿者:kourogi  投稿日:10月11日(月)19時53分05 [253]

こんな感じです
DEFINE DIALOG POP__PNL

DEFINE BMPB POPEDIT
DEFINE BMPB modoru
ON SELECTION DIALOG POP__PNL NPane030()
ACTIVATE DIALOG POP__PNL MODAL
RELEASE DIALOG POP__PNL
RETU
----------
FUNCTION NPane030
do case
case PANEL()="POPEDIT"
DEFINE DIALOG EDIT_PNL
DFFINE PUSHB
処理1
DEFINE PUSHB
閉じる
ON SELECTION DIALOG EDIT_PNL NPOP_030()
ACTIVATE DIALOG EDIT_PNL MODAL
RELEASE DIALOG EDIT_PNL
case PANEL()="MODORU"
DEACTIVATE DIALOG POP__PNL
endc
RETU .t.
-------------
FUNCTION NPop_030
do case
case PANEL()=
処理1

case PANEL()=
閉じる
DEACTIVATE DIALOG Edit_PNL
endc
retu .t.


arago  投稿者:kourogi  投稿日:10月11日(月)18時57分26 [252]

xさん いたるところに その影ありです
不安定な原因はそれですよ きっと
なぜ
deactivate dialog dialog1
activate dialog dialog2 modal
にしないかというと、dialog2のバックスクリーンは表示しておきたいからです


 投稿者:x  投稿日:10月11日(月)18時30分11 [251]

ACTIVATE DIALOG POP__PNL MODAL+ACTIVATE DIALOG err__PNL MODAL
では不安定だと思います
deactivate dialog dialog1
activate dialog dialog2 modal
で一つだけ表示するか
activate dialog dialog1 modeless
activate dialog dialog2 modal
dialog2を前に表示するか決めてやらないとWindows OSはどう動けばいいのかわからないと思います
結果的にご迷惑を・・・となってしまうのかもしれません


arago  投稿者:kourogi  投稿日:10月11日(月)15時37分15 [250]

下記見れません
どうしたら すべてのファイルを自由にダウンできるようになるのでしょうか


arago  投稿者:kourogi  投稿日:10月11日(月)15時31分43 [249]

syaruru.com/possystem
にプログラムと顧客以外の実データをアップしました、
c:\posdata
を作ってダウン後 spos.prgがスタート
ポッププログラムはspop_030.prgです
不足ファイルのため うまく作動しないかもしれませんが
運営中のプログです
帳票系はまだできていません、サーバーから別管理しています。


arago  投稿者:kourogi  投稿日:10月11日(月)14時54分53 [248]

ACTIVATE DIALOG POP__PNL MODALの中で
エラーメッセージとしてACTIVATE DIALOG err__PNL MODAL
を表示することは不安定でしょうか


 投稿者:x  投稿日:10月11日(月)14時34分39 [247]

POP__PNLACTIVATE DIALOG POP__PNL MODALの場合は
・・・MODALのダイアログはON SELECTION DIALOGで実行されるプログラムの中でDEACTIVATEしてください。・・・とするか
ACTIVATE DIALOG POP__PNL MODELESS
にきりかえるかしないと・・・
POP__PNL
ACTIVATE DIALOG POP__PNL MODALのままで残るとうまく動かないと思います


arago  投稿者:kourogi  投稿日:10月11日(月)14時05分45 [246]

ACTIVATE DIALOG POP__PNL MODAL
ACTIVATE DIALOG EDIT_PNL MODAL

EDIT_PNL
 が POP__PNLの裏に回る場合があります、毎回ではありません
このプログラムだけではなく
他の時も ときどきあります。


 投稿者:x  投稿日:10月11日(月)13時34分56 [245]

deactivate dialog dialog1
activate dialog dialog2 modal
で一つだけ表示するか
activate dialog dialog1 modeless
activate dialog dialog2 modal
dialog1を後ろにするか
activate dialog dialog1 modeless
activate dialog dialog2 modeless
activate panel panel1 modal
で並べて表示するかでしょうか


arago  投稿者:kourogi  投稿日:10月11日(月)12時47分47 [244]

画面いっぱいのdialog1上のボタンを押すと、80%くらいの大きさのdialog2が開くのですが、dialog1の裏で開いています。

ftp
準備していますが、時間かかりそうです。


dialog  投稿者:inaba  投稿日:10月11日(月)06時54分02 [243]

> dialog2つ以上を全画面か80%くらいの枠で重ねて表示する
> dialog
の原理は確かにそうなので、対策しようがないのです。
>
毎回ではありませんが、必ず起きています。
dialog1
上のボタンを押すとdialog2が開くということですか?
両方ともmodalですか?
dialog2
をオープンしたらdialog2にはフォーカスを移動できませんよね?
どういう状態なのか、想像がつかないのですが・・。
> syaruru.com
でサーバーがあるのですが
>
そこに、プログラムとサンプルデータを入れた
web
サーバなら、置いてあるファイルのリンク先を教えていただければOKでは?


ARAGO  投稿者:kourogi  投稿日:10月09日(土)22時00分33 [242]

xさん、inabaさん
いつもありがとうございます
遠方に出かけていて遅くなりました。

x
さん dialog2つ以上を全画面か80%くらいの枠で重ねて表示する場合が多いです
DTOC
 は DTOS にしたほうが良い
INDEX
にはDTOSを使用すること
2つが 多くのPRGで該当しています
特にindexを変更するには
運用中なので大事になりますが、検討してみます。
brows
は全く使用していません。

inaba
さん
当たってます、すでにアクロバットです。
dialog
の原理は確かにそうなので、対策しようがないのです。
毎回ではありませんが、必ず起きています。

syaruru.com
でサーバーがあるのですが
そこに、プログラムとサンプルデータを入れたとして
inaba
さん方が 自由に見ていただける環境にするには
どうしたらいいでしょうか。


aragoのダウン  投稿者:inaba  投稿日:10月08日(金)21時14分38秒 [241]

aragoのダウンはやはりbrowse関連が多いように思います。
なので、browseは文字通り「表示」のためにしか使わないことにしています。
あと、Windowsの制限があるのをaragoのエラーと勘違いすることもあるかも・・?
とりあえず、あまり複雑でアクロバットみたいなPRGを書くと落ちたり・・。
kourogi
さん、panelでは消えたりしますが、dialogでは原理的に不可能な気がしますが・・。
modal
dialogが有効なのは1つだけで、aragoではそれを閉じない限り別のdialogには異動できないように思いますが(テストしてません)。
panel
ならxさんのおっしゃるとおり、pnel1panel2をモニターの左右に配置すればOKかと・・。


 投稿者:x  投稿日:10月08日(金)20時18分11 [240]

aragowのダウンの対策についてMishinaさんに送っていただいたものを書き込みます

アラゴを安定して使用するために 6.5  2.21

WINDWSE 2000
以上
メモリ 1GB 以上

以下は、私の少ない経験から得た教訓ですが、必ずしも全部が当てはまるとは思いませんが、ARAGOW が自分の意思に反してダウンする
ことを少しでも改善できればと思って書き込みます。
自分のプログラムの幼稚分は棚にあげてありますので、そこらへんは割り引いて見てください。但しプログラムの記述は正しいものとします。多分アラゴを使用している方は多かれ少なかれ経験があると思います。

VALID
で呼ばれるFUNC の中には「絶対」に WAIT を書かないこと。表示したい内容は 変数に与えAUTOで表示する
MESSAGEBOX
は「使わない」こと。今大丈夫でも「必ず」影響が出る 出来るだけ自分で作ること YESNO.PRG
BROWSE
の中で :R を「使わない」こと。NOMODIにする
BROWSE
に直接入力はしないこと。編集は「別記述」のプログラムをすること
プロンプト brow では「データが破損する」ケースが多いので直接入力は避けるべき、ダイレクト入力は ver4.5に限る
set rela
では brows で「修正を行わない」こと
define browse
では field 「項目数」が多い場合はダウンする
seet
 を使ってbrow1  brow2と項目が多いばあい、フィールドをクリックすると落ちる
この場合 brow する field 数を減らすとダウンしなくなる
BROWSE
の要約 BROWSE でのオプションは出来るだけ使用をしないこと
DTOC
 は DTOS にしたほうが良い
INDEX
にはDTOSを使用すること


ここまでするとダウンはかなり改善される。ハズです。
なお これでも改善されない場合は、ダウンする場所に見当をつけて、プログラムの隙間に WAIT "1" WAIT "2" などを入れて探る
こうすることによりダウンする場所を付きとめる、その前後に SLEEP .2 とか SLEEP 1 を入れると大概のものは収まる

6.6
コマンドが変わっているのにHELPの説明が変わっていないので注意 (これはメーカーさんが忘れたのでしょう)
新しいコマンドはパネルペインタで記述できないので注意 (当然出来るべき問題)
ENTRYFIELD
 が前のバージョンと微妙に異なる
ENTRYFIELD
で今入力した内容が突然消えることがある??
最初のENTRYFIELD VALID が書いてあると、入力前であるのに VALID に入ってしまう。


 投稿者:x  投稿日:10月08日(金)15時12分06 [239]

dialogは一つだけ表示するか並べて表示するかでしょうか


DEFINE DIALOG  投稿者:kourogi  投稿日:10月07日(木)23時51分37 [238]

DEFINE DIALOGNOCLOSE指定しても、その前に表示していたDIALOGの裏に
回ってしまうことがあるのですが、謎です。
Alt+TAB
キーで表示は戻りますが、どこかに行ってしまったDIALOG
ユーザーが戸惑うようです、何か対処法はないでしょうか。


directprn  投稿者:kourogi  投稿日:10月07日(木)23時19分45 [237]

すみません、xさん
やはり私の勘違いでした
大変申し訳ございませんでした。


directprn  投稿者:kourogi  投稿日:10月07日(木)10時55分36 [236]

xさんすみません、対応していない訳ないですよね
もう一度そこのプリンターで確認してみます、
自宅はA3プリンターだったものですから、
私の大勘違いだと思います。


 投稿者:x  投稿日:10月06日(水)23時17分02 [235]

A4プリンターでA4横の印刷はよく使うと思いますが横出力の対応がなく、とはプリンタドライバが対応していない(用紙設定にA4横がない)のですか


DIRECTPRN  投稿者:kourogi  投稿日:10月06日(水)21時15分34 [234]

xさんお世話になります
アラゴのフォームでA4横でレイアウトしたものを
A4
プリンターで出力ができないでしょうか

x
さんの言われるように
プリンターはA4プリンターなので
directprn
で横指定ができません

因数3番目を2にすると
プリンターはA4横出力は対応がなく、縦しかないので
縦のまま横のフォームで出力されてしまいます。

帳票も含めて横指定はなんとか欲しいものです
恐縮ではありますが、対策頂ければ幸いです。


フォント  投稿者:kourogi  投稿日:1004(月)1743分01 [233]

inabaさん素早いご対応ありがとうございます
今 組み終わりました。
同じ要領で赤系とか青系とかできそうですね
ありがとうございました


フォント  投稿者:kourogi  投稿日:1003日(日)2036分37 [231]

inabaさん、
カラーピッカ-ですが、大変便利なので使わせて頂いているのですが
グレースケールのときに選択しやすいように
右の空いた所に白から黒までのグレースケールを追加出来ないでしょうか
時間があるときで結構です

xさんありがとうございます、
用紙A4で統一します。


 投稿者:x  投稿日:10月03日(日)13時41分36 [230]

ARAGOWPOBJECTSEXTERNのフォルダにEXTERNコマンドの有効範囲は、宣言した場所から次のRETURNまでとなりますと書いてありましたエラーにならなければokと思います
directprn
A5指定の縦と横は単純にdirectprn('',11,1,0)directprn('',11,2,0)ですが
プリンタにA5用紙がない場合はdirectprn()での指定が無視されデフォルトの設定(A4縦など)で印刷されると思います


フォントと印刷  投稿者:kourogi  投稿日:1003日(日)1229分36 [229]

xさん 長文ありがとうございます
inaba
さん資料ありがとうございました
完璧でーーーーーす
ダイアログの中のjpgは小さいのですが、
pos
レジが800x600なので、1.5倍程度ならokかも
このポスレジ、周りのショップの方々にもちょっと話題になってます
今回のPOP機能も見せたのですが
昨日のような急なドラゴンズセールには本当に便利です
テナントのみなさんレジ見てびっくりしていきます。
このときのドヤ顔がたまりません。
オムロンのレジの関係者とも連絡しあって情報もらったりしていますが
arago
の急なダウンさえ解消できれば
十分に採用、販売OKと言ってもらえましたが
この世界メンテが大変なので無理です。
万が一販売できたら、お二人の特許代金もっていきますね

x
さん質問です、
Extern
は使用するたびに読み込んだほうがいいのか
最初の立ち上がりで1回読み込んだほうがいいのか
どちらでしょうか
directprn
A5指定の縦と横、どちらも縦になりませんか
すみません、私の勘違いかもしれません


 投稿者:x  投稿日:10月03日(日)10時26分32 [228]

210(縦),297(横)ピクセルのdialogの場合
1
行目がDEFINE TEXT AT 20.00(aピクセル), FONT ,10.00(bポイント)の場合
10.00(b
ポイント)は10.00(bポイント)×96÷72=13.33(cピクセル)だから
2
行目の位置は
20.00(a
ピクセル)+13.33(cピクセル文字の高さ)+13.33(cピクセル文字の高さ)×1.5(d文字の高さの1.5倍の行間の場合)=53.33(eピクセル)
となり
2
行目はDEFINE TEXT AT 53.33(eピクセル), FONT ,10.00(bポイント)
3
行目の位置は
53.33(e
ピクセル)+13.33(cピクセル文字の高さ)+13.33(cピクセル文字の高さ)*1.5(d文字の高さの1.5倍の行間の場合)=86.66(fピクセル)
となり
3
行目はDEFINE TEXT AT 86.66(fピクセル), FONT ,10.00(bポイント)

これを210(縦),297(横)mmformに換算する場合は
210
(縦),297(横)ピクセルのdialog55.56(縦),78.58(横)mmの大きさのform
1
行目の位置は20.00(aピクセル)が20.00÷96×25.4=5.29mmでそれを297mm78.58mm倍して20.00(g mm)となり
フォントは10.00(bポイント)を297mm78.58mm倍して37.80(hポイント)となり
1
行目はDEFINE TEXT AT 20.00(g mm), FONT ,37.80(hポイント)
2
行目の位置は53.33(eピクセル)が53.33÷96×25.4=14.11mmでそれを297mm78.58mm倍して53.33(h mm)となり
2
行目はDEFINE TEXT AT 53.33(h mm), FONT ,37.80(hポイント)
3
行目の位置は86.66(fピクセル)が86.66÷96×25.4=22.93mmでそれを297mm78.58mm倍して86.66(i mm)となり
3
行目はDEFINE TEXT AT 86.66(i mm), FONT ,37.80(hポイント)
となる

上記の場合はdialogAT(ピクセル)とformATmm)が同じ数値になりますが210(縦),297(横)ピクセルのdialogでは小さ過ぎませんか


フォント  投稿者:kourogi  投稿日:1003日(日)0001分23 [226]

xさん フオントの大きさについては 完璧です
画面で見たとおりの大きさです!
うれしくなってきました、あと行間です、この要領でやってみます


 投稿者:x  投稿日:10月02日(土)23時51分30 [225]

formmmpaneldialogがピクセルでフォントがポイントで25.4mm=96ピクセル=72ポイントで
297x210
ピクセルのdialog78.58×55.56mmの大きさのform(拡大縮小によって画面の大きさは変わりますが)にあたりそこに 50ポイントのフォントを設定なので同じ比率で297x210mmの大きさのformに拡大するなら50ポイントを297mm78.58mm倍して 188.98ポイントになるかと


フォント  投稿者:kourogi  投稿日:1002日(土)2306分05 [224]

xさん 大きさ合ってます、そのxさんのさらっと書いた式は
どのような式になるのでしょうか
画面でのフォントpt × 画面jpg横のpix ÷ 78.58/297.0 = 紙面上のフォントpt
でしょうか


 投稿者:x  投稿日:10月02日(土)22時00分01 [223]

1インチ=25.4mm=96ピクセル=72ポイントで 297×210ピクセルは78.58×55.56mmの用紙に50ポイント(17.64mm)のフォントだから同じ比率ならば 50×297÷78.58=188.98ポイント(66.67mm)のフォントになるのでしょうかこんなに大きいかな・・・


フォント  投稿者:kourogi  投稿日:1002日(土)2037分18 [218]

define dialog 297x210ピクセルに50ptのフォントを設定したとき
297x210mm
の紙に同じ比率で印刷するには define form に何ptのフォント指定になるのでしょうか


フォント  投稿者:kourogi  投稿日:1001日(金)2339分35 [217]

急なアピタユニー指示で
ドラゴンズセールをすることになりましたが
テスト稼動していたPOPシステムが役に立ちました
実際 稼動してみると20%off%off
72pt
くらいになると 印刷時には上にあがってしまうのです
明日からなので とりあえず印刷しました。


 投稿者:x  投稿日:10月01日(金)22時23分33 [216]

この掲示板で管理者としてできることはタイトルを書くこと壁紙記事の削除くらいです全記事クリアなどというボタンもあって間違って押さないように気をつけています


スクロール  投稿者:inaba  投稿日:1001日(金)2001分47 [215]

xさん、掲示板のデータが長~くなってきました。
ボタンつけて、ページのナビゲーションできるようになりませんでしょうか?


>フォント  投稿者:inaba  投稿日:1001日(金)1957分05 [214]

kourogiさん
> 1
つは、向こうを向いています>
> pxdoc
は難しそうです
となると、define form しかなさそうですね。
行間の計算式は form でもOKと思います。
おかげさまで再びPXDOCの勉強をさせていただいて、得るものはちゃんとありました。
本当に「情けは人のためならず」です。
手数をかけたのはkourogiさんのためでなく、私自身のためでした。


フォント  投稿者:kourogi  投稿日:1001日(金)1308分30 [213]

inabaさん モニターは2台なんですが、コンビニにあるレジなので
1
つは、向こうを向いています
pxdoc
は難しそうです
いろいろとお手数お掛けします。


pxdocを見ながらフォント変更  投稿者:inaba  投稿日:10月01日(金07時16分44秒 [212]

例によって姑息な手段を考えました。
モニターが2台なら、一方にpxdoc、一方にaragoでできるんじゃ?
pxdoc
のファイル-設定-全般の「印刷後は自動終了」のチェックをはずし、あらかじめpop01.pxdを読み込んでおく。
pop2.prg
の最後の run行をはずし、フォントやカラーを変更したら、pxdoc側で
ctrl+r
で再読み込み。
どうでしょう? 私のところではテストできません。


フォント  投稿者:kourogi  投稿日:1001日(金)0234分21 [210]

inabaさん
fs*0.03528+1
 のfsはフォントのポイント
出てきたこの結果がmmでしょうか
11pt
のフォントは 印刷すると1.39mm ?
それは違いますよね、どこが違うのでしょうか
眠気で回転が鈍ってきました、明日考えます。


フォント  投稿者:kourogi  投稿日:1001日(金)0203分43 [209]

xさん
w_A4y=297.0
w_A4x=210.0
DEFINE FORM POPSEET FROM 0.00, 0.00 TO w_A4y, w_A4x SIZE w_A4y, w_A4x MM FONT OF sysfont, 9
w_yohaku_y=4.0
w_Yohaku_x=5.0
w_A4y=w_A4y - w_yohaku_y
w_A4x=w_A4x - w_Yohaku_x
w_Zoom1y=(w_A4y-w_yohaku_y)/w_A4y
w_Zoom1x=(w_A4x-w_Yohaku_x)/w_A4x
として余白は用紙幅から除去されるので
各位置情報に w_Zoom1yを掛けて 位置補正はしています

お二人には 大変な手間と時間を取らせて 恐縮です。


 投稿者:x  投稿日:09月30日(木)23時31分25 [208]

方眼紙テストしてみました私のプリンタの場合余白設定に関係なく座標0,0が余白内の左上隅となりました
方眼紙の画像の大きさ(354.41×251.8mm)とFROM TOを下記のように一致させると正確な大きさ(座標)に印刷されました
DEFINE IMAGE TFORM OF FORM01 ;
FROM 0.00, 0.00 TO 354.41, 251.8 ;
FILE hougan.BMP
縦が286mmまで横が203mmまで印刷されその外はカットされました
次に画像の大きさを286×203mmにトリミングして
DEFINE IMAGE TFORM OF FORM01 ;
FROM 0.00, 0.00 TO 286.00, 203.00 ;
FILE hougan1.BMP
としましたら画面とプリントが一致しました


 投稿者:x  投稿日:09月30日(木)21時31分34 [205]

aragowFORM2.PRGではFORM.BMP519×706pixel 175.77×239.1mm 75pixel/inchで貼り付け位置が
DEFINE IMAGE TFORM OF FORM1 ;
FROM 29.90, 20.11 TO 259.03, 184.94 ;
FILE FORM.BMP
となっています
kourogi
さんの横298.00 210.0jpgが貼り付けてありやそれの貼り付け位置?とaragowのとどちらが正解なのかわかりませんが下絵の大きさや貼り付け位置は関係しな いのでしょうかプリンタの余白設定などは関係しないのでしょうか方眼紙を下絵にしてテストしてみるとわかるかもしれません


>フォント  投稿者:inaba  投稿日:09月30日(木)19時05分24秒 [201]

kourogiさん
> pxdoc
で表示された画面を見ながら
うーん、それができればすばらしいですが・・無理か?
>
行間は自動設定したいのです
pop001.prg
は一応は自動設定ですが・・。
--
lm=ltrim(str(fs*0.03528+1,5,2,""))
--
の部分です。
>
その換算がうまくいかないです
やはり100%は無理なんじゃ。でも、誤差の範囲で運用できませんかねえ。


フォント  投稿者:kourogi  投稿日:0930日(木)1658分35 [200]

xさんの言われるとおりの仕様になっています
inaba
さん ビデオで撮影してutubeにでも密かにupします
言葉ではうまく説明できませんが
pxdoc
で表示された画面を見ながら
もう少しフォントのサイズをあげたり
位置を訂正したりできればいいのです
フォントの大きさを上げると行間も増やさないと重なってしまいますよね
コメントは3行分まとめて移動はできますが、行間は自動設定したいのです
x
さんの言うように画面用FORMで位置や大きさを決定して
印刷ボタンを押したときに印刷用FORMに換算しながら置き換えて
印刷しますが
その換算がうまくいかないです
今日ビデオ取りして 息子に頼んで確認できる方法を探ります


仕様がちょっと?  投稿者:inaba  投稿日:0929日(水)1925分28 [198]

> A4横に印刷します
>
文字の位置は上から30.00mm 左から200.00mm
> 1
行目と2行目の行間の計算とフォントの印刷時のpt指定です
この行間がどうなればいいのでしょうか?
重ならなければいいのか、最低で何ミリあればいいのか、あるいはフォントサイズの?%なのか・・など。


とりあえず・・  投稿者:inaba  投稿日:0929日(水)1921分39 [197]

kourogiさん、
>
印刷ボタンを押してdirectprnで印刷されます
pxdoc
のボタンですか? それともprgのボタン?
pxdoc
なら、モニター上で確認し、OKならプリントアウトできるはずですが・・。


 投稿者:x  投稿日:09月29日(水)18時43分46 [196]

位置合わせ用の画面用FORMとそれに対応する印刷用FORMの両方作るのはどうでしょう画面用FORMACTIVATE FORMして画面で位置合わせしそれに対応させた印刷用FORMで印刷する字間を調節して1字ずつ印字するサブルーチンなども必要になるかもしれませんが 赤を選べば濃い赤に変更もできますね


フォントと印刷  投稿者:kourogi  投稿日:0929日(水)1408分13 [193]

画面には 横298.00 210.0jpgが貼り付けてあり
この上に文字をずらして上から30.00 左から200.00
1
行目"\2900の品"
2
行目に"\1000"を 50ptで配置しました
これでA4横に印刷します
A4
横は298.00x210.00mmで、文字の位置は画面と同じなので指数として扱えます
なので 文字の位置は上から30.00mm 左から200.00mmとなりますよね
ここまでは問題ないと思いますが
1
行目と2行目の行間の計算とフォントの印刷時のpt指定です
お知恵をお貸し下さい


フォントと印刷  投稿者:kourogi  投稿日:0929日(水)1338分58 [192]

inabaさん いつも丁寧にありがとうございます
昨日は一日pxdocを試していましたが、
画面を見ながら、文字を移動したり、コメント入れたりします
なので、仕上がりを見ながら配置して完成だと思ったら 印刷ボタンを押して
directprn
で印刷されます
pcdoc
に移った段階でmmの計算がずれていれば、結果 画面と違う位置になってしまいます。
でもinabaさん変換サイト よく見つけて頂きましたね
こっちで、物理的に計算してみます。


モニターと紙  投稿者:inaba  投稿日:0929日(水)1116分57 [191]

pcdocで試してみましたが、何でやっても難しいものですね。
考えてみたら、モニター(dpi,px)と紙(cm)とフォント(pt)間の単位変換が有理数になる保証はないですよね。
モニター上で様子を見ながら印刷されたときにそのままのイメージにするのは無理かも・・。
もう検索済みかもしれませんが、は変換サイトでした。
http://www.trojanbear.net/omake.htm


たぶんpxdocのほうが・・  投稿者:inaba  投稿日:09月28日(火)22時54分57 [190]

kourogiさん、でっかいフォントで試したことがありませんが、define form よりは、pxdocのほうがイメージどおりのプリントになると思います。
jpg
などを配した共通ページの上に、能書きやらプライスやらを上書きする感じ。
svg
ファイルは fcreateで書き出し、runで出力すればOKのはずです。


アラゴでお絵かき  投稿者:kourogi  投稿日:0927(月)2229分18 [189]

xさんinabaさん いつもお世話になります
x
さんの言われるように 下絵は全店統一のため 決まっており
JPG
で下絵はできており、そこに3行のコメントと1行のプライスを
配置するだけのソフトです
なのですが
フォントの大きさが変わると行間の計算がうまくできなかったり、
さらに印刷すると 位置の違いが出るため、計算式もわからず
ずれてしまいます
ionaba
さんの言われることを 私も感じています
バーコードの幅を設定するときは そのようですね。
それと同じ現象があるのかもしれません。
ショップで見る 商品についた ショーカードPOPです
秋の下絵があって メーカー価格9900円が 現品限り 1990
という文字だけを配置して 印刷します。


define form  投稿者:inaba  投稿日:09月26日(日)21時16分03 [188]

私の経験では、小数点以下どころか整数部分1桁のレベルで動かなかった記憶があります。
小数点以下をPRGに書くか書かないかは、WinかDOSかを判別するためなんじゃないかと思いました。
有効なのは、どの桁のどれくらいの数字なのか・・・不明です。
たとえば、333.3334.1では表示上は何も変わらないのに、334.2
になると突然やや移動・・なんてことがあったりします(数字は架空です)。
なので、私の場合はクライアントがOKならほとんどPxdocにしてます。
ネットに公開している汎用ソフトではやむなくformにしてますが、やはり、いくらかの誤差が出てしまっています。


 投稿者:x  投稿日:09月26日(日)10時23分11 [187]

ARAGOWでの印刷はPOBJECTSFORMFORM2.PRGのようにDEFINE IMAGEで罫線や図など(他のソフトで作る)を印刷しそこへ文字だけ印字する(小数点2桁まで位置指定してある)のがいいようにみえます


dpiとmm  投稿者:kourogi  投稿日:09月23日(木)01時47分43 [186]

inabaさん いつもありがとうございます
一般のモニターだと96dpiですね
ぜんぜん わかりませんが
鬼のように 位置のテストを繰り返しながら 数式を探っています
近づいてはくるのですが、完璧じゃないとこが 悔しいです。
Pxdoc
初めて知りました
使い方を探ってみます。


dpiとmm  投稿者:inaba  投稿日:09月22日(水)21時05分08 [185]

> dpipixelの関係
ググッてみるといっぱい出てきますね。
こんなのありました。
--
1024×31
ピクセルの画素の画像は、
1024×31
mmだと25.4DPIになります。
512×15.5
mmだと50.8DPIになります。
361.2×10.9
mmだと72DPIになります。
108.3×3.3
mmだと240DPIになります。
--
define form
をお使いですか?
私はPxdocを使ってます。
どなたかに教えていただいたのですが、なかなか使い勝手はいいと・・。
ただ、ページが変わるたびに印刷ダイアログが出るのは閉口。有料版なら出ないらしいですけど・・。


フォントと印刷  投稿者:kourogi  投稿日:0922日(水)1801分18 [184]

お世話になりっぱなしのkourogiです
画面に配置したフォントや画像は、
画面上ではxy座標のピクセルを単位としてデータ化しているのですが
印刷するとmmの単位に変換しなくてはいけません
dpi
pixelの関係など、どうもうまく合わず、ずれてしまいます
そこでいきずまっていて、進みません。

画面上のフォントのピクセルと印刷時のmmの関係は
計算できるものなのでしょうか


フォント  投稿者:kourogi  投稿日:0918日(土)2336分28 [183]

なんだか寝てられなくって仕様とおよそのプログラムができました
inaba
さんのカラーピッカー、とても名案です !
x
さんのdllでフォントを変えて、16色では足らない時にだけ押す
カラーピッカーボタンをフォントの横に付けました、バッチリです!
もう少し手直しできたら、utubeで動画登録します、
お時間あるときに見て頂いて、アドバイスを伺えたらなと 思います。


フォント  投稿者:kourogi  投稿日:0918日(土)2010分46 [182]

理解できました !
いやー 今回ちょっと苦労しました
実際には何行かあるので entry101 , entry102,・・・
さらに1枚のA4に4枚印刷するので entry201,entry202・・・
とあると、
行数をw_l としたら
entry&w_l.01 , entry&w_l.02
・・・
となりますよね
&
だらけで 頭がウニになりました
でも
おかげさまでなんとか出来そうです
もう少ししたら、また報告します。
右目の結膜炎が悪化し、少し寝ます。
ありがとうございました。


できるみたいですね  投稿者:inaba  投稿日:0918日(土)1059分44 [181]

> w_Col1 という変数に"255,0,0"を入れてあります
>set color color01 to w_Col1
 ができればいい
set color color01 to &w_Col1
でやってみたらOKみたいですが・・


@いうまに・・  投稿者:inaba  投稿日:0918日(土)1032分51 [179]

> w_Col1 という変数に"255,0,0"を入れてあります
>set color color01 to w_Col1
 ができればいい
こんなのも作ってみました。
--
set color e1 to 10,20,200
set color e2 to 200,10,20
set font e1 to of "
MS 明朝", 9
set font e2 to of "
MS P明朝", 10
set font msg10 to of "
MS P明朝", 10
define dialog dia1 at 100.0,150.0 size 385.0,725.0
store space(20) to e1,e2
define entryfield e1 of dia1 at 28.0,82.0 width 300 font e1 color e1
define entryfield e2 of dia1 at 108.0,82.0 width 300 font e2 color e2
&& prologue setfont("e2")
define pushbutton p1 of dia1 at 28.0, 388.0 size 20.0, 50.0 prompt "←
変更" font msg10
define pushbutton p2 of dia1 at 108.0, 388.0 size 20.0, 50.0 prompt "←
変更" font msg10
define pushbutton dq of dia1 at 208.0, 388.0 size 20.0, 50.0 prompt "
終了" font msg10
on selection dialog dia1 do dpro
activate dialog dia1 modal
release dialog dia1
return

procedure dpro
if panel()="P1"
setfont("e1")
setcolor("e1")
elseif panel()="P2"
setfont("e2")
setcolor("e2")
else
deactivate dialog dia1
endif
return
function setfont
parameters para
set font ¶ to ?
return .t.

function setcolor
parameters para
store "0" to rv,gv,bv
cn=pickcol()
if .not.empty(cn)
rv=str(htoi(left(cn,2)))
gv=str(htoi(substr(cn,3,2)))
bv=str(htoi(right(cn,2)))
endif
set color ¶ to &rv,&gv,&bv
define text t01 prompt ¶ of dia1 at 200.0,82.0 font ¶ color ¶
return .t.

function pickcol
hcno=""
decl co[6]
co[1]="00"
co[2]="33"
co[3]="66"
co[4]="99"
co[5]="CC"
co[6]="FF"
define dialog dc1 ;
at 0.0, 0.0 size 500.0, 200.0 title "
カラーピッカ-"
on selection dialog dc1 do syori
for p=1 to 6
for q=1 to 6
for r=1 to 6
gcol=co[p]+co[q]+co[r]
rr=htoi(co[p])
rg=htoi(co[q])
rb=htoi(co[r])
set color col&gcol to rr,rg,rb
define pushbutton b&gcol of dc1 at 5.0+r*12+72*(p-1), 10.0+12*(q-1) size 10.0, 10.0 prompt " " color ,col&gcol
next
next
next
define push endbtn of dc1 at 10.0,90.0 size 20.0,40.0 prompt "
終了"
activate dialog dc1 modal
release dialog dc1
return hcno
*-------------------
proc syori
if panel()="ENDBTN"
deactivate dialog dc1
else
btn=right(panel(),6)
hcno=btn
define text colname of dc1 at 50.0,90.0 prompt btn
define box box1 of dc1 from 70.0, 90.0 to 155.0, 150.0 opaque ;
color , , col&btn
endif
return


 投稿者:x  投稿日:09月17日(金)19時36分52 [178]

*このようにテストしました
set color color01 to 0,0,128
set font font01 to of '
MS 明朝',48 B
set font font02 to of '
MS 明朝',10
EXTERN CSTRING getphonetic(CSTRING) keybd001.dll
EXTERN CSTRING getfont(CLONG,CSTRING,CINT,CSTRING,CSTRING) getfont001.dll
define panel panel01 from 0.0, 0.0 to 400.0, 900.0
store space(80) to entry01,entry02
define entryfield entry01 of panel01 at 20.0,100.0 out3d picture "@K1" valid function01() prologue function02() font font02 color color01
*
山田@太郎
define entryfield entry02 of panel01 at 60.0,100.0 out3d font font02 color color01
define text text01 of panel01 at 100.0,100.0 prompt '
東京ディズニーランド' font font01 color color01
define text text02 of panel01 at 200.0,100.0 prompt '
千葉県浦安市舞浜' font font01 color color01
activate panel panel01 modal
release panel panel01
return
function function01
store filter(entry01,'
','  ') to entry01
store space(200) to buf01
store getphonetic(buf01) to buf02
store filter(buf02,'@',' ') to entry02
return .t.
function function02
store space(100) to getfont01 &&
バッファ
store getfont(color("color01"),font("font01","F"),font("font01","P"),font("font01","A"),getfont01) to getfont01
if ''<>getfont01
store left(getfont01,11) to getfont02
set color color01 to &getfont02
store right(getfont01,len(getfont01)-11) to getfont03
set font font01 to of &getfont03
endi
return .t.


 投稿者:x  投稿日:09月17日(金)18時50分28 [176]

下記に書き込んであるのですがset color color01 to &w_Col1です


ほんと  投稿者:kourogi  投稿日:0917日(金)1832分34 [175]

255,0,0
自体が変数内に格納され w_Col1 という変数に"255,0,0"を入れてあります
set color color01 to w_Col1
 ができればいいのですが エラーですよね


 投稿者:x  投稿日:09月17日(金)18時24分29 [174]

set color color01 to 255,0,0
set font font01 to of "
DFG極太明朝体",54 B
とやって
store getfont(color("color01"),font("font01","F"),font("font01","P"),font("font01","A"),getfont01) to getfont01
でもいいです


フォント  投稿者:kourogi  投稿日:0917日(金)1808分03 [173]

そっかー カラーのとこが原因で エラーだったのですね
"255,0,0"
の変数を255+0*256+0*256*256 にするのが大変そうです。


 投稿者:x  投稿日:09月17日(金)17時17分26 [172]

EXTERN CSTRING getfont(CLONG,CSTRING,CINT,CSTRING,CSTRING) getfont001.dll
ですので
store getfont("255,0,0","
DFG極太明朝体",54,"B",getfont01) to getfont01

store getfont(255+0*256+0*256*256,"
DFG極太明朝体",54,"B",getfont01) to getfont01
です
私のPCでは"DFG極太明朝体"がないです


フォント  投稿者:kourogi  投稿日:0917日(金)1629分47 [169]

xさん
store getfont(color("color01"),font("font01","F"),font("font01","P"),font("font01","A"),getfont01) to getfont01
のところは
store getfont("255,0,0","
DFG極太明朝体",54,"B",getfont01) to getfont01
でよろしいのでしょうか


フォント  投稿者:kourogi  投稿日:0917日(金)1545分38 [168]

xさん,inabaさん 大変な作業ありがとうございます
inaba
さんのは続けてset colorを処理するプログラムですね
これなら いろんな色が作れる反面
フォントで指定した色は無視して、次のカラー設定画面に頼るのですね
x
さんのdllは、前回のものに私のプログラムを書き直している途中です。
じっくり検証します。
なにより先に お礼申し上げます。


 投稿者:x  投稿日:09月17日(金)11時34分23 [167]

*デフォルトの色も引用するようにかえましたが基本の16色以外は黒になってしまいますここでは仮の色として赤を選べば印刷のときに(プリンタに合わせて)、濃い赤に変更してやろうが最良と思います
EXTERN CSTRING getfont(CLONG,CSTRING,CINT,CSTRING,CSTRING) getfont001.dll
*
store space(100) to getfont01 &&
バッファ
store getfont(color("color01"),font("font01","F"),font("font01","P"),font("font01","A"),getfont01) to getfont01
if ''<>getfont01
store left(getfont01,11) to getfont02
set color color01 to &getfont02
store right(getfont01,len(getfont01)-11) to getfont03
set font font01 to of &getfont03
endi


fontの色  投稿者:inaba  投稿日:09月17日(金)08時50分36 [166]

> getfont001ではデフォルトの色を引用できないので色を変更しない場合黒になってしまいますここもかえますか
変えるとどんな色でもOKになりますか?


 投稿者:x  投稿日:09月17日(金)08時05分11 [165]

getfont001ではデフォルトの色を引用できないので色を変更しない場合黒になってしまいますここもかえますか


 投稿者:x  投稿日:09月17日(金)07時39分55 [164]

*getfont001はコモンダイアログですデフォルトを引用するようにかえました&paraHTMLの特殊文字のようです
EXTERN CSTRING getfont(CSTRING,CINT,CSTRING,CSTRING) getfont001.dll
*
store space(100) to getfont01 &&
バッファ
store getfont(font("font01","F"),font("font01","P"),font("font01","A"),getfont01) to getfont01
if ''<>getfont01
store left(getfont01,11) to getfont02
set color color01 to &getfont02
store right(getfont01,len(getfont01)-11) to getfont03
set font font01 to of &getfont03
endi


フォントの色  投稿者:inaba  投稿日:0917日(金)0641分52 [162]

xさんと違い、いつもながらprgに姑息なことをさせて解決しようとする私です(笑)。
フォントの色をフォントダイアログではなくカラーダイアログで設定したらどうでしょう?
--
set color e1 to 10,20,200
set color e2 to 200,10,20
set font e1 to of "
MS 明朝", 9
set font e2 to of "
MS P明朝", 10
set font msg10 to of "
MS P明朝", 10
define dialog dia1 at 100.0,150.0 size 385.0,725.0
store space(20) to e1,e2
define entryfield e1 of dia1 at 28.0,82.0 width 300 font e1 color e1
define entryfield e2 of dia1 at 108.0,82.0 width 300 font e2 color e2
&& prologue setfont("e2")
&& ↑
ならent2にフォーカスが当たるたびに変更
define pushbutton p1 of dia1 at 28.0, 388.0 size 20.0, 50.0 prompt "←
変更" font msg10
define pushbutton p2 of dia1 at 108.0, 388.0 size 20.0, 50.0 prompt "←
変更" font msg10
define pushbutton dq of dia1 at 208.0, 388.0 size 20.0, 50.0 prompt "
終了" font msg10
on selection dialog dia1 do dpro
activate dialog dia1 modal
release dialog dia1
return

procedure dpro
if panel()="P1"
setfont("e1")
setcolor("e1")
elseif panel()="P2"
setfont("e2")
setcolor("e2")
else
deactivate dialog dia1
endif
return
function setfont
parameters para
set font ¶ to ?
return .t.
function setcolor
parameters para
set color ¶ to ?
define text t01 prompt ¶ of dia1 at 200.0,82.0 font ¶ color ¶
return .t.
--
これを適当にアレンジすれば何とかなりませんか?


フォント  投稿者:kourogi  投稿日:0916日(木)2051分17 [160]

getfont001では、デフォルトが引用できないので
文字の大きさを変更しない場合
10pt
になってしまいます


 投稿者:x  投稿日:09月16日(木)18時28分01 [159]

印刷物の色合わせはプリンタにもよりますから難しいですね


フォント  投稿者:kourogi  投稿日:0916日(木)1641分28 [158]

xさん、またもや、さらっと 作って頂いて 本当に短時間ですごいですね

POP
作成ソフトはあるんですが、
操作がもっと簡単であること
各支店ごとに不揃いのPOPではなく、統一されていること
が必要なので
バックの絵やロゴは本社から指定されたもので
そこに金額または50%offなんてのを配置するソフトです

だから、文字の大きさと位置を入力した金額に合わせるだけの
操作となります。

getfont001
ありがとうございます。
使用する色は16色もありませんが
色をユーザーではなくプログラムで変更できればいいのですが
例えば赤色でも、エンジのような濃い赤が欲しいのです
赤を選べば印刷のときに、濃い赤に変更してやろうと思います


 投稿者:x  投稿日:09月16日(木)07時48分04 [157]

*POP作成ソフトがあるようですが・・・色の設定はset color color01 to ? 16色だけなら下記で
EXTERN CSTRING getfont(CSTRING) getfont001.dll
*
store space(100) to getfont01 &&
バッファ
store getfont(getfont01) to getfont01
if ''<>getfont01
store left(getfont01,11) to getfont02
set color color01 to &getfont02
store right(getfont01,len(getfont01)-11) to getfont03
set font font01 to of &getfont03
endi


フォント  投稿者:kourogi  投稿日:0916日(木)0345分02 [156]

自己解決できましたが
font()
は ダイアログにフォントの色の指定が表示されるのに
フォントのカラーの取得はできないのですね
そこが残念ですね


フォント  投稿者:kourogi  投稿日:0914日(火)2022分15 [155]

font(1,"F")
を使えば・・・
ちょっと 勉強します。


フォント  投稿者:kourogi  投稿日:0914日(火)1951分56 [154]

下のプログラムで
入力した文字をタイムリーに変換するのではなく
選択されたフォント名と大きさを表示することは
できないでしょうか
wait e1
はエラーになってしまいます


フォント  投稿者:kourogi  投稿日:0914日(火)1859分13 [153]

えっ!
こんなことできたんですね
今日まで
全然知りませんでした
いやー、まだまだ沢山あるもんですね、知らない世界。
inaba
さんありがとうございます、
inaba
さん早起きですね。


フォント  投稿者:inaba  投稿日:0914日(火)0748分12 [151]

おはようございます。kourogiさんの前便(No.150)はやはりset fontでしたか。
----
set font e1 to of "
MS 明朝", 9
set font e2 to of "
MS P明朝", 10
set font msg10 to of "
MS P明朝", 10
define dialog dia1 at 100.0,150.0 size 385.0,725.0
store space(20) to ent1,ent2
define entryfield ent1 of dia1 at 28.0,82.0 width 300 font e1
define entryfield ent2 of dia1 at 108.0,82.0 width 300 font e2
&& prologue setfont("e2")
&& ↑
ならent1にフォーカスが当たるたびに変更
define pushbutton p1 of dia1 at 28.0, 388.0 size 20.0, 50.0 prompt "←
変更" font msg10
define pushbutton p2 of dia1 at 108.0, 388.0 size 20.0, 50.0 prompt "←
変更" font msg10
define pushbutton dq of dia1 at 208.0, 388.0 size 20.0, 50.0 prompt "
終了" font msg10
on selection dialog dia1 do dpro
activate dialog dia1 modal
release dialog dia1
return
**
procedure dpro
if panel()="P1"
setfont("e1")
elseif panel()="P2"
setfont("e2")
else
deactivate dialog dia1
endif
return
**
function setfont
parameters para
set font ¶ to ?
return .t.
----
で選択できますが、フォントが多すぎてかえって面倒じゃ?
あらかじめ5-6個、定義しておいて、どれかを選ぶ方が楽なような・・。


フオント  投稿者:kourogi  投稿日:0913(月)2305分01 [150]

inabaさん、ありがとうございます
お店で使うPOPを店サイドでスタッフに作ってもらい印刷するPRGです
POP
内のそれぞれの文字は、スタッフが選べれるようにしたいのです。
しかし行ごとのフォントの名前を正確にエントリーフィールドで指定入力するには間違いも多発し、大変なので
アラゴのユーティリティタブの環境設定-フォントから表示される
ダイアログのような選択ができればいいなって
現在試行錯誤中です。

前回のルビ入力は好評で、顧客登録時間が大幅に短縮されました。
ありがとうございます。


フォント  投稿者:inaba  投稿日:0913(月)2246分34 [149]

kourogiさん、お仕事は順調なようですね。
>
ファイルを得るのにGetfile()を使って
>
フォントを得るのに使用すると、フォント名が得られず
フォントファイルをダウンロードしようってことですか? 
ちょっと意味がよく分からないのですが、自身のPCのフォント選択なら
set font hoge to ?
ですよねえ?


GETFILE()  投稿者:kourogi  投稿日:09月13日(月)19時46分19 [148]

xさん、inabaさん、またご教授ください

ファイルを得るのにGetfile()を使ってダイアログを出して
選択できるコマンドがありますが
フォントを得るのに使用すると、
フォント名が得られず、フォントとは関係無いファイル名を
得てしまいます。
フォントを選択できるようにしたいのですが、方法をご存知ないでしょうか


ありがとうございます  投稿者:kourogi  投稿日:0906(月)1324分35 [147]

inabaさんありがとうございます
またひとつ、便利なDLLが増えました。
ARAGO
では制限された処理の枠から
Extern
のおかげでこんなに広がるとは思いませんでした

x
さんにわざわざ作っていただいた貴重なDLL
現場で働くエンドユーザーに大変便利に改善することができました。
今日、inabaさんのrubiのプログラムをシステムに組んで
スタッフに顧客管理のバージョンアップと発表をしました。
購入されたお客様の顔写真がcaptureで捕らえられ
顧客の共有とスムーズな顧客入力ができ、現場サイドにとても役立つと
大好評です。
掲示板を通して、お二人に協力頂いたことをお話しました。
お会いしてお礼するのが当然なのですが、xさんのお言葉に
甘えさせていただきます。
本当にありがとうございました。


 投稿者:x  投稿日:09月06日(月)12時46分37 [146]

むかしむかし素浪人月影兵庫が礼などいらんよと言っていたので私もそれでとおします


タブキーを押したことにする  投稿者:inaba  投稿日:0906(月)0604分41 [145]

kourogiさん、おはようございます。
> Extern CVOID kbd_dn(CINT) arwutil.DLL
> Extern CVOID kbd_up(CINT) arwutil.DLL
>
は何でしょうか
下のentryfieldにルビ変換後、上のentryfield(かな入力域)にフォーカスを戻すためのものです。
function rubi
中で使っています。


ルビ  投稿者:kourogi  投稿日:0906(月)0142分23 [144]

inabaさん 質問よろしいでしょうか
Extern CVOID kbd_dn(CINT) arwutil.DLL
Extern CVOID kbd_up(CINT) arwutil.DLL
は何でしょうか
省略してもルビは出たのですが・・


漢字にふりかな  投稿者:kourogi  投稿日:0905日(日)2249分43 [143]

氏名の姓と名は分けて入力したほうがよさそうですね
うーん 大幅な改良が必要になってきました。


お礼  投稿者:kourogi  投稿日:0905日(日)1231分20 [142]

ご親切にありがとうございます
解読する前にまず、長文に至り お調べ頂いた事お礼申し上げます
じっくり解読します、またのちほど。


Re:getphonetic+半角カナ  投稿者:inaba  投稿日:09月05日(日)12時28分10秒 [141]

> buf03はバッファとして使っているだけです
あ、そうでしたね。grtphonetic()もそうでしたし・・。
あとで確認してみます。


 投稿者:x  投稿日:09月05日(日)11時50分49 [140]

書き込みありがとうございますhira_to_han(buf02,buf03)とした場合のdllの出力はhira_to_han()に帰ってきますbuf03はバッファとして使っているだけです
hira_to_han(buf02,buf03) &&
半角カナ
*rubi=trim(rubi)+buf03 &&
なぜか最初だけOKだが追加できない?
のところを
store hira_to_han(buf02,buf03) to buf03 &&
半角カナとあらためて代入する
*rubi=trim(rubi)+buf03 &&
なぜか最初だけOKだが追加できない?
とするか
*rubi=trim(rubi)+hira_to_han(buf02,buf03) &&
なぜか最初だけOKだが追加できない?
とするとokのようです
山本さんのzen2han()は全角ひらがなも半角カタカナになりますね


getphonetic+半角カナ>  投稿者:inaba  投稿日:09月05日(日)09時18分55秒 [136]

xさん、kourogiさん、おはようございます。
消してしまったPRGに手を加えたPRGです。
長くなってすみません。なぜかhira_to_han()の連続使用がうまくいかないのですが・・。
--
set language to american
define panel panel1 from 0.0, 0.0 to 400.0, 700.0
EXTERN CSTRING getphonetic(CSTRING) keybd001.dll
EXTERN CSTRING zen_to_han(CSTRING,CSTRING) hantozen001.dll
EXTERN CSTRING hira_to_han(CSTRING,CSTRING) hantozen001.dll
Extern CVOID kbd_dn(CINT) arwutil.DLL
Extern CVOID kbd_up(CINT) arwutil.DLL
define text title of panel1 at 10.0,10.0 ;
prompt "
漢字変換後にenterキーを押すとルビが自動入力される\nたなか-変換-enter-ごとう-変換-enter と入力+変換を繰り返す。"
define text t_kanji of panel1 at 50.0,10.0 prompt "
漢字変換+ENTER"
define text t_rubi of panel1 at 80.0,10.0 prompt "
変換前のかな"
store space(16) to kanji,rubi
define entryfield kanji of panel1 at 48.0,120.0 out3d picture "@K1" valid rubi()
define entryfield rubi of panel1 at 78.0,120.0 out3d
activate panel panel1 modal
release panel panel1
return
**
function rubi
store space(200) to buf01,buf03 &&
バッファを確保
store getphonetic(buf01) to buf02 &&
全角かな
hira_to_han(buf02,buf03) &&
半角カナ
*rubi=trim(rubi)+buf03 &&
なぜか最初だけOKだが追加できない?
rubi=trim(rubi)+zen2han(buf02) &&
これだとうまくいく
kbd_dn(9) && Tab Key focus=ent02
kbd_up(9) && focus=ent01
return .t.
**
function zen2han &&
確か山本さんにいただいたはず
parameter zenkaku
private hankaku, c, p, f, table1z, table1h, table2z, table2h, table3z, table3h
table1z = "
1234567890-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&' ‘,.:;=~^|+-*/?_¥<>(){}[]¥@アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲ ンァィゥェォッャュョーあいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんぁぃぅぇぉっゃゅょー"
table1h = "1234567890- ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&'`,.:;=~^|+-*/?_\& lt;>(){}[]\@
アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ-ア イウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ-"
table2z = "
ガギグゲゴザジズゼゾダヂヅデドバビブベボがぎぐげござじずぜぞだぢづでどばびぶべぼ"
table2h = "
カキクケコサシスセソタチツテトハヒフヘホカキクケコサシスセソタチツテトハヒフヘホ"
table3z = "
パピプペポぱぴぷぺぽ"
table3h = "
ハヒフヘホハヒフヘホ"
set language to japanese
hankaku = ""
c = ""
for i=1 to len(zenkaku)
c = substr(zenkaku, i, 1)
if asc(c) > 256
p = at(c, table1z)
if p > 0
hankaku = hankaku + substr(table1h, p, 1)
loop
endif
p = at(c, table2z)
if p > 0
hankaku = hankaku + substr(table2h, p, 1) + "
"
loop
endif
p = at(c, table3z)
if p > 0
hankaku = hankaku + substr(table3h, p, 1) + "
"
loop
endif
endif
hankaku = hankaku + c
next
set language to american
return hankaku


 投稿者:x  投稿日:09月05日(日)08時55分27 [135]

*漢字に変換したタイミングでのふりがな取得
EXTERN CSTRING getphonetic(CSTRING) keybd001.dll
define panel panel01 from 0.0, 0.0 to 400.0, 800.0
store space(20) to entry01,entry02
define entryfield entry01 of panel01 at 80.0,100.0 out3d picture "@K1" valid function01()
*
山田@太郎
define entryfield entry02 of panel01 at 160.0,100.0 out3d
activate panel panel01 modal
release panel panel01
return
function function01
store filter(entry01,'
','  ') to entry01
store space(200) to buf01
store getphonetic(buf01) to buf02
store filter(buf02,'@',' ') to entry02
return .t.


 投稿者:x  投稿日:09月04日(土)19時26分31 [134]

inabaさんがgetphonetic()が変換前の「かな」、 今回のが「漢字の読みの第1候補」と理解すればよろしいでしょうか?とその通りだと思います前にinabaさんがgetphonetic()のうまい使用 例を書き込んでくれたのですが削除されたようでまた書き込んでくれませんか


ありがとうございます  投稿者:kourogi  投稿日:0904日(土)1909分31 [133]

C910というとロジクールの新発売した両側にマイクあるやつでしょうか
x
さんいいの持ってますね、
でも、captur001.dllが作動していても、アラゴのプログラムは進んでいるのですよね。
それなら問題ないのです。
capture.exe
のときは黒い作業用のウインドウが出ていましたが
dll
にして頂いてから何も出ずに、
撮影してしまうので大変便利です。
hantozen001
の件、またまたありがとうございます
顧客名を漢字入力して、そのカナに利用するのですが
前回もxさんが言われたように、読み方が違う場合もあるので
違っていた場合は修正入力することになりそうです。
この件はアラゴの掲示板にも話題にはなっていましたが
解決されたのかはわかりません。

それと、xさん 何かお礼させて下さい。
ご連絡とれる方法があればいいのですが・・・。


 投稿者:x  投稿日:09月04日(土)18時01分17 [132]

kourogiさんC910ですとタイムラグ300ミリ秒で普通に写りますhantozen001.dllに全角ひらがなを半角カタカナに変換するhira_to_han()を入れました


capture001.dll  投稿者:kourogi  投稿日:09月02日(木)00時23分29 [127]

xさん 
快適です、
感動です、
何事も無かったかのようにキャプる姿は
ステルス機能のようで
とっても気に入りました
しばらく撮影タイミングの実践テストを繰り返して
組み入れます。
本当にありがとうございます。


 投稿者:x  投稿日:09月01日(水)22時57分59 [126]

*capture001.dllをアップロードしましたcapture("デバイス名","出力ファイル名",撮影のタイムラグミリ秒)

EXTERN CVOID capture(CSTRING,CSTRING,CINT) capture001.dll
capture('Chicony USB 2.0 Camera','sample.bmp',700)


CAPTURE.DLL  投稿者:kourogi  投稿日:09月01日(水)14時32分29 [124]

すみません xさん
画面を覆ってしまう枠というのはCAPTURE.dll で画面に出るウインドゥのことです。hantozen001.dllではありません。
明るさを確保するためにタイムラグを2000にするのですが
時間が長い分だけ画面に表示されているウインドゥで画面を覆ってしまうので
気になると説明したかったのです、どうもすみません。
CMOS
のカメラからスイッチオンで起動の早いカメラにすれば解決するかもしれません。
CMOS
のモジュールでは電源投入から画像安定するまでタイムラグが大きいのでしょう。USBWEBカメラのほとんどはCMOSなのでなかなか見つかりません。


 投稿者:x  投稿日:09月01日(水)07時47分09 [123]

同じ漢字でも人によって読み方が違いますので個別の確認が必要です ひらがな半角カタカナは作ればですが・・・とりあえずhira_to_kata()zen_to_han()で画面を覆ってしまう枠というのはコマン ドプロンプトのことですかデフォルトのデバイスというのはないようです


CAPTURE  投稿者:kourogi  投稿日:09月01日(水)01時55分14 [122]

私のCMOS WEBカメラではタイムラグ700が限界で
映ってはいるのですが、とても暗いです
2000
にする明るくなりますが、画面に表示される枠が気になります。
レジ会計時に自動記録したいので、ポスレジ画面を覆ってしまう枠表示の時間が気になります。
また前回同様 デバイス""ならデフォルトのデバイスを利用することになれば
なお使いやすいと思うのですが
素人の考えることなので、それよりも図々しく意見など恐縮です。


CAPTURE  投稿者:kourogi  投稿日:09月01日(水)00時51分53 [121]

映りました !
すごいです、
ありがとうございます。本当に毎回
感謝の言葉しかありませんが
x
さんのおかげで 思い通りのシステムに近づいていきます


hantozen001.dll  投稿者:kourogi  投稿日:09月01日(水)00時13分02 [120]

今 顧客管理部分の修正を手がけています
kanji_to_han
で自動半角カナを氏名部分につけたいのですが
半角になりません。kanji_to_kanaと同じ結果になってしまうのですが
方法はありませんでしょうか。
ふりかなを2度打ちしなくて済むので大変ありがたいのですが
全角ひらがなになってしまいます


 投稿者:x  投稿日:08月31日(火)23時56分36 [119]

capture.exe "Sony Visual Communication Camera VGP-VCC1" sample.bmp 700 引数は デバイス名 出力ファイル名撮影のタイムラグ(ミリ秒)動作確認用でまだエラー処理メモリーの解放処理やっていません


CAPTURE  投稿者:kourogi  投稿日:08月31日(火)02時13分01 [117]

カメラ本体を見ていると、撮影時のLEDが一瞬点灯します。


CAPTURE  投稿者:kourogi  投稿日:08月31日(火)02時11分15 [116]

xさんありがとうございます
もしかしたら、これって作って頂いたのでしょうか
この短時間で?

カメラはスカイプでは写っているのですが
ファイルを見ると真っ暗です。
一瞬ビデオ枠が出てきて真っ黒のまま閉じます。
私のカメラ設定が悪いのでしょうか
カメラの名前はセットしなくてもいいのですか ?


 投稿者:x  投稿日:08月30日(月)23時29分44 [115]

http://www2.odn.ne.jp/merrybelle/capture.exeをダウンロードしてコマンドラインでcapture.exe sample.bmpとやってsample.bmpできますか


キャプチャー  投稿者:kourogi  投稿日:0829日(日)2045分40 [114]

ご存知でしたら、教えてください、
ARAGO
のコマンドラインから
WEB
カメラの撮影ができるソフト系
ご存知ないでしょうか、
キャプチャーのデバイスとファイル名の指定で
静止画でいいから撮影できるものは無いものでしょうか。
run capt.exe "webcam1300" "gazou.jpg"
のような感じで専用ダイアログが出ずに
画像がファイルになればいいのですが。



VECTOR
で探しましたが、うまく見つかりません。


 投稿者:x  投稿日:08月29日(日)11時19分22 [113]

EXTERNでの呼び出しとdllとを正確に合わせなければ動きません


ドットネットDLL  投稿者:inaba  投稿日:0828日(土)1930分57 [112]

xさん、本家サザンの掲示板で .NET 用のDLLがARAGOで使えるかどうか話題になってますが、どんなもんでしょうか?


Dbgview  投稿者:kourogi  投稿日:08月27日(金)03時21分32 [111]

こんな使い方ができるとは知りませんでした
この板に来てから毎日新発見の連続です
4時までついつい・・の毎日です
inaba
さんありがとうございます。


language  投稿者:inaba  投稿日:08月26日(木)21時43分15 [110]

> SET LANGUAGE TO JAPANESEですと文字列の終わりのNULLを認識しないで通り越してしまうことがありました
これは考えてもみませんでしたが、偶然にも私も普段はAMERICANでプログラミングしてました。
kourogi
さんのおっしゃる「半角+全角の日本語メッセージの長さを得る」時だけjapaneseにしていましたが、そこでダウンしたと思われる経験は・・ないような・・。


Dbgview  投稿者:inaba  投稿日:08月26日(木)21時37分17 [109]

Dbgviewの使い方の正しい使い方は知りませんが、以下のようにすると使えることは使えます。
hoge.prg
--
EXTERN CVOID OutputDebugStringA(CSTRING) kernel32.dll
とし、ブレイクポイントで
* Dbgview.exe
の窓に表示
OutputDebugStringA("
文字列")
--
最初は、OutputDebugStringで試しましたがうまくいかず、WZ(テキストエディタです)で覗いてみたらOutputDebugStringAを発見し、それでやってみたら結果オーライでした。
x
さんなら理由がきっとお分かりでしょうね・・え。私は???です。


ARAGO  投稿者:kourogi  投稿日:08月26日(木)20時02分19 [108]

inabaさん さっそくdownloadしてきました、
使い方を勉強してみます、
xさん、SET LANGUAGE TO JAPANESE なら
ふんだんに使っています。
半角+全角の日本語メッセージの長さを得るのに欠かせないです
代用があればいいのですが・・・


 投稿者:x  投稿日:08月26日(木)14時00分01 [107]

うろ覚えなのですがSET LANGUAGE TO JAPANESEですと文字列の終わりのNULLを認識しないで通り越してしまうことがありました随所で落ちる原因になると思いますのでSET LANGUAGE TO AMERICANでプログラミングした方が安全かもしれません


本業?  投稿者:inaba  投稿日:0826日(木)0556分51 [106]

私、アマチュアに毛が生えた程度で、まったくたいしたことありません。
カバレッジはaragoset coverage on/offのことです。
Dbgview
はけっこう有名なソフト・・かな? すぐ検索できると思います。
prg
のブレイクポイントにしかけた出力文字がDbgviewの窓に出力されます。
arago
waitだと落ちちゃうとそれっきりですが、Dbgviewは落ちないので・・といった思いつき程度の書き込みです。
すみません。


#define  投稿者:kourogi  投稿日:08月25日(水)19時44分31 [105]

#define pie 3.14 は大変わかりやすい例です、ありがとうございます。
努力すれば治療済みにできるのですね、大したものです、
inaba
さんは本業ですか
私にはデバッグビューワとかカバレッジの使い方も良く知らないのです。
メモリの件は、再現性がないので、タイミングがつかめず
実務でも11時間使って、12度ほど落ちます、
レジの途中で落ちるのが最悪です。


#define  投稿者:inaba  投稿日:08月25日(水)13時02分24 [104]

kourogiさん、#defineはたぶん定数の定義に使っている人が多いと思います。
#define pie 3.14
のように・・。メインプログラムのヘッダに書けば、publicだと思います。
arago
が落ちる件、メモリーの問題ではなさそう・・ということですか。
私のところでは落ちるPRGはすべて治療済みにしてしまいましたので、テストができません。
デバッグビューワとかカバレッジとか何かできませんかねえ・・。


#DEFINE  投稿者:kourogi  投稿日:08月24日(火)23時53分53 [103]

inabaさんありがとうございます
ヘルプを見ても いまいちわかりづらい部分でした
コンパイルされたPRGには使えそうですが、
そうでなければPRIVATE宣言して使うメモリと同じであると理解しました。
ARAGO
のフリーズですが、特にメモリが膨らんでくる様子はなく
ARAGO
が突然落ちると、ProcessEからも消えてしまうので
原因もよくわかりません


#define  投稿者:inaba  投稿日:08月24日(火)09時03分37 [102]

前々便[100]にタイプミスがありました。
#include tst.h → #include hoge.h


ProcessExplorer  投稿者:inaba  投稿日:08月24日(火)08時58分07 [101]

Winの構造的な部分を見るわけですから、xさんに見ていただくと詳しく分かるんじゃないかと思いますが・・。
ともあれ、物理メモリはWorkingSetPrivateByteは仮想メモリじゃないかと・・。
なお、メニューなどのリソースが日本語化されたパッチがありますよ。


#define  投稿者:inaba  投稿日:08月24日(火)08時47分48 [100]

私はこんなふうに使っています。
hoge.h
というテキストファイルを2つ用意し、自宅=自社では(1)を発注元では(2)を使います。
*hoge.h--
開発時用(1)
#define dsv "c:\tmp\" &&
仮想サーバ
#define dcl "c:\aragow67\bin\develop\tmate\" &&
クライアントのフォルダ
*hoge.h--
運用時用(2)
#define dsv "\\server\serv_c\tmate\" &&
サーバのフォルダ
#define dcl "c:\tmate\" &&
クライアントのフォルダ
メインプログラムのヘッダに
#include tst.h
と記述しておくと、コードを変更することなく、すべてのprg dsv dcl が読み替えられます。
この話題は xさんも書いていらっしゃいましたが、サザンの掲示板の方がいいと思いますよ。


ARAGO  投稿者:kourogi  投稿日:08月24日(火)00時23分43 [99]

物理メモリの使用率でメモリの使用率というのは PrivateByte ?
それともWorkingSet?


ARAGO  投稿者:kourogi  投稿日:08月24日(火)00時08分57 [98]

inabaさんありがとうございます、今前者をダウンロードして
サブモニターを付けて、準備したところです。
メモリの宣言ですが
inaba
さん#define って使ってますか?
これって w_No=1 と #define w_No 1 は違いがあるのですか


ARAGO  投稿者:inaba  投稿日:0823(月)1120分31 [97]

私もaragowのダウンにけっこう悩まされています。
kourogi
さんのテストの結果が楽しみです。
ご存知かもしれませんが、Winのタスクマネージャより高機能なProcessExploerとかProcessMonitorというソフトがあります。


ARAGO  投稿者:kourogi  投稿日:08月23日(月)00時41分20 [96]

xさん名案です !
テストしてみます。
メモリの宣言をきちんとしておくことは
重要かもしれません。


 投稿者:x  投稿日:08月22日(日)20時47分51 [95]

aragowのアプリケーションの個々のプロシージャをテストプログラムで動かし続けてみてタスクマネージャのパフォーマンス物理メモリの使用率でメモリの使用率が徐々に増えるのを確認するなどしてどのプロシージャが問題なのかを絞り込めれば対策があるかもしれません


ARAGO  投稿者:kourogi  投稿日:08月22日(日)20時39分55 [94]

参考になります、ありがとうございます。
sleep 0.5
は 私も自分で発見して 随所に付けています。
ただこれらも、落ちる場所が特定できる場合です。
でも実際に業務で長く使ってると、どこで落ちるかは
まちまちなんです。

何でもないメニュー画面で落ちることもあり、
多くは次のプログラムに移るときに、3秒ほど無言が続いて落ちます。

落ちたときのメッセージはWINOSのメッセージで
ご迷惑・・・ 送信しますか・・・ ってやつです。

でも毎回同じ場所ではないので、
それで思うにアラゴのメモリ管理的な・・・
と判断したわけです。

アラゴプログラム実行中に
いったんメモリをセーブして、クリーンにする処理をして
アラゴを再起動してメモリを戻す的なことが
素早くできたら、直らないかな・・と素人判断で思うわけです。

だいたい 業務ソフトをアラゴで というのが失敗なんですが
クイックシルバーのDOS時代はとても安定したすばらしい開発言語でしたから
今の年になって新言語は学べません。


 投稿者:x  投稿日:08月22日(日)19時45分25 [93]

以前の経験でprg間やPROCEDURE間でDEFINE BROWSEなどをするとレコード番号が引き継がれない場合がありましたそれでDEFINE BROWSEの前にgo RECNO()を入れると落ちなくなったことがありました
Mishina
さんがaragow 6.5を愛用していると書いてましたまた下記の書き込みありましたMishinaさん勝手にコピペお許しください
1
 DEFINE BROWSE は大幅に変更があったので注意 IN 条件 レコード番号 FREEZE  WHEN
  対策 IN を外す SELE  FILENAME  条件は必ず外す SET FILT 又は INDEXに条件を付ける
  レコード番号は働かないので SEEK後再定義する FREEZE は使わない
2
 SET RELATION した場合の BROWSEでの編集
  対策 SET RELATION 内では直接編集を行わない(修正ルーチンを作成する)
3
 メモリ変数は最初に宣言すること
  対策 変数管理を最初に行う
4
 データ数が30000件を超える場合にDEFINE BROWSE すると随分遅くなりました。砂時計が出まくる感じ
  対策が取れないので4.5で動かしています
私が感じている所見を掲示しますので参考にしてください。
プログラムの修正箇所
 dfine browse の in オプションを外すこと
 dfine browse の 条件を使わないこと set filt to .. や index で条件を付けること
 メモリ変数は必ずヘッダー部分で宣言すること
 set exac は 標準で ON にしておく方が安全
パネルペインタで画面の位置取り以外は、約束に従って、手動で書いた方が良い
リレーションしてあるbrowseでの、ダイレクト編集は表示がおかしくなるので、注意
DEFINE BROWSE
で直接データを編集するのは危険、特に SET RELA の場合は要注意
私の使い方はBROWSEで拾って別画面で編集してREPL
SET RELA
の場合も同じ方法です。
>ARAGOには文法上エラーにならないエラー(バグ)が時々あって、
>それを自分で抜け道を作って避けて進まないといけないのです。
私の経験 
1
 落ちる場所を見つけて sleep 0.5 を入れると落ちなくなるケース、特にbrowse
2
 browseの PICT "999,999,999" を使わない
3
 VALID で飛ぶ FUNCTION の中に WAIT命令は絶対に使わない
4
 OSの違いで落ちたりする場合 WINXP
細かく退治して安定してくると ARAGO6.2 より ARAGO4.5 が調子良かったりする
「落ちる場所を見つけて」と書きましたが、じゃあどうやって見つけるか
1
 落ちる場所の見当を付けて wait "1" wait "2" 等と記述しておく(なるべく細かく)
2
 プログラムを稼動して、どのwaitとどのwaitの場所で止まるかを捜す
3
 必ず同じ場所なら、その場所を別の方法に変えたりする
4
 メモリ変数が壊れる(どこで壊れるか徹底的に探す)変数名を変えると直る場合有り
5
 出来るならbrowseでの入力はやめて、余分なことはさせない
あくまでも、私見ですが
1
 パソコンのメモリを512以上にするとか
2
 関数の中には WAIT を置かないこと
3
 メッセージBOXをするとSELECTがかわることが有るから、使用しないこと
4
 BROWSE の中で :R を使わないこと。
5
 set rela では brows で修正を行わないこと
6
 SEET と ページを使ったBROWS はしない事
7
 browse から修正したい場合は、別画面を用意し、そこで修正すること
8
 とまると思われる場所に SLEEP で時間稼ぐととまる場合がある
9
 BROWSE の 上にBROWSEを開く場合は下のBROWSERELEし戻る時に再定義すること
10
 DIALOG や PANEL は常に開放すること
11
 valid から呼ばれた func 内から do ?????.prg は行わないこと
要約すると browse  valid に関係する場合が多いです。これらを対策すると、自分ではおおかた旨くいっています。
客先で起きている現象が開発環境で起きないケースは誰でも経験していると思います。
客先のパソコンの中に A????.tmp が5個以上有ったら危険信号です。
それも100%再現出来ないので、上記を参考に防いでおります。


DIRECTPRN  投稿者:kourogi  投稿日:08月22日(日)15時23分25 [92]

エラーは一度もありません、昨日から2店舗だけでバージョンアップしました
x
さんのDLLはかなりの偉業です !

プリンターのダイアログをパートさんに説明する必要がなくなりました
レシートもBASICに切り替わらないので素早くなり、
お客さんを待たせません。
スタッフはメカに弱い女性なので、簡単になったと大好評です。

あとは、突然強制終了してしまうアラゴが課題です。
時間があいたときに、メモリを整理するというのか
システム的な問題を、解決できないにしても
補助するようなDLLやバックで動作するものはご存じないでしょうか。


 投稿者:x  投稿日:08月22日(日)09時33分06 [91]

directprn('',9,1,0)
directprn('',9,1,0)
PRINT FORM form01
のようにPRINT FORM form01の前にdirectprn()2回以上入れるとエラーとなって強制終了してしまいますこっそりなおしましたがkourogiさん大丈夫かな


directprn  投稿者:kourogi  投稿日:08月18日(水)14時43分48 [90]

xさん、大変面倒なことをお願いしてしまったようで恐縮です
ありがたく使用させて頂きます。
いつも頂く一方で、お返しできるものが何も無いのが残念です。
PC
ハードの方なら少々、あとは熱帯魚と映画くらいしか得意分野がなくて
力になれることがあれば言ってください。


 投稿者:x  投稿日:08月18日(水)07時58分20 [89]

プリンタの用紙サイズ設定のところで長さ無限の用紙サイズを選択できるのですかdirectprn('Canon LBP5400 LIPSLX',0,1,0)のようにPAPERSIZE,ORIENTATION,DUPLEX0を入れるとそこがデフォルトに設定されるようにこっそりなおしました


directprn()  投稿者:kourogi  投稿日:08月18日(水)02時47分18 [87]

今、新しいdirectprn()に変更しました、
print002.dll
はダイアログが一瞬表示されましたが
directprn()
はなくなりました、速いです !
用紙サイズですが、長さ無限というコードもあるのでしょうか


乱数とくじ  投稿者:kourogi  投稿日:0818日(水)0017分14 [86]

xさんの言われるとおり、損のないようになってます
つまり、利益がない買い上げでは、当たりはでません。
でも、同じTシャツでも、900円で仕入れたものと600円て仕入れたものとあります。
お客さんはどちらを買うか・・・
前者のTシャツは出ませんが、後者なら出ます。
ある意味で、お客が商品を選ぶ確立が発生していて、スタッフも気づきません。だから、乱数は使っていません。
力になれない板汚しでした。


 投稿者:x  投稿日:08月17日(火)23時27分53 [85]

自然な乱数ExclusiveOrshift演算線形合同法って数学ですか・・・私には無理なようですくじと言えばkourogiさんの店でもあたりクジがあるのかなあたりはオーナーの独断で決めるのもありではないかと思います


directprn()  投稿者:kourogi  投稿日:08月17日(火)20時19分12 [83]

xさん
今 気づきました
プリンター名 とか いつのまに・・・・
ほんとにほんとに 感謝です !


 投稿者:x  投稿日:08月17日(火)11時14分04 [82]

inabaさんがPRGでやられていることをdllに書き換えることくらいならなんとかできるかもしれませんが乱数って・・・絶句別次元のことで全くわかりません


ご冗談を  投稿者:inaba  投稿日:0816(月)2040分44 [81]

>私のdllはたいしたものではありません
x
さんの姿勢は一貫していらっしゃいますね。
>
ソースファイルを付けているのは自信がないからでご自分でなおしてくださいと願っています
うーん・・(絶句)、xさんの感覚のレベルと私のような駆け出しの感覚のレベルの違いを感じますね。
自分でなおせるくらいの力があれば、最初から自分で作る・・に決まっていて、できないから探すわけで・・。
何はともあれ結果オーライで、使わせていただけるものはありがたく頂きます。
でまた、新たな課題・・。
課題は、擬似乱数の「自然な」生成です。
たとえば30個の乱数を生成して、できる限り再生不可能な状況を作れるか?
これは私自身はPRGレベルでそれなりの解決をしていますが、擬似かどうか検証のしようがなく、どうしたものかと・・。
DLLレベルでやれば複雑な計算も速く、人間には「擬似乱数」ではなく本物の「乱数」と映るかも・・?
もし、遊んでみようかなと思われたら、お願いしたく・・。


 投稿者:x  投稿日:08月16日(月)07時59分20 [80]

はじめから私のdllはたいしたものではありませんmail001.dllも(他のものも)何度かこっそりなおしましたソースファイルを付けているのは自信がないからですご自分でなおしてくださいと願っています


sendmail2.prg  投稿者:inaba  投稿日:08月16日(月)07時15分19 [79]

xさん、kourogiさん、おはようございます。
x
さんも人が悪い(笑)。SMTP認証なしのsendmail2.prgをこっそり仕込んでおくなんて・・。
新しい認証なしPRGのPOPサーバにアクセスする部分はおまけですか?
以前のPRGでも認証部分をコメントオフしたらエラーはなくなりました。
つまりメールアドレスとポート番号とSMTPサーバ名さえわかれば送れてしまった!
認証なしというのは怖いですね。


sendmail  投稿者:kourogi  投稿日:08月14日(土)16時48分01 [78]

xさん、inabaさん お世話になっています。
まさに、ポート問題も悩みの種でした。
ポート指定ができないので、自動メール送信ができませんでした、
コレできるのでしょうか、すばらしいです。
前回のプリンター問題は解決して、レシートにバーコードやら
あたりクジやら、いろいろ付けれるようになり
システム変更中です、お二人のお陰です。


Re:sendmail  投稿者:inaba  投稿日:08月12日(木)10時51分50 [77]

前便に変換ミス。
メールは遅れます送れます


sendmail  投稿者:inaba  投稿日:08月12日(木)09時41分56 [76]

おはようございます。
次々と出てきますね。仕様変更版directprn()はまだ試していません。
sendmail
aragoにもありますが、ポート番号の指定とSMTP認証ができないのが玉に傷。
mail001.dll
ではそれができるということですね。
逆に、SMTP認証なしの場合はどうなりますか?
やってみましたら、メールは遅れますが、以下のエラーがでます。
535 5.7.0 Error: authentication failed: authentication failure


client1.prg+http001.dll  投稿者:inaba  投稿日:08月03日(火)12時45分03 [75]

xさん、標記、とてもおもしろいですね。
server.prg
のところを別のprgにすると、aragoiが実行してくれて、その結果を返してくれるので、工夫次第でどんなことができるのやら!!


aragoの安定化  投稿者:kourogi  投稿日:08月02日(月)16時50分2秒 [74]

ありがとうございます、調べてみます。
お二人には 本当に心から感謝申し上げます。
事後報告ですが、xpC++2010の無料版をインストールしたところ
快適に動作しました
レシート発行がWINDOWSの印刷が利用でき、
いろんなアイデアを実行できそうです。


 投稿者:x  投稿日:08月02日(月)16時20分02 [73]

aragowのメモリーの解放などに問題があったりバッファオー バーランが起きるのかもしれませんプロのかたがアクセスしている本家のwww.soupacific.comの掲示板の方が情報を得られやすいと思います この掲示板は今のところkourogiさんとinabaさんくらいしかアクセスがありませんさらに私は何年も前からaragowを使っていません Microsoftの製品のほうがユーザーが多くバグもすぐに対応されて何でもできて安定もしていますので


aragoの安定化  投稿者:kourogi  投稿日:0802(月)1527分24 [72]

ARAGOで作成したアプリが巨大化してきました、
同じプログラムでも、何回か繰り返すと
突然システム的なOS側のエラーとなって強制終了し
画面から消えてしまいます
こういった現象を安定させるのに、
みなさんは工夫されていますか ?


directprn  投稿者:kourogi  投稿日:08月02日(月)12時50分35 [71]

判明しました
.NET Framework 4
SQL Server
他のソフトの影響で上記がインストールされていれば
xp
でも作動を確認しました
この度は大変ありがとうございました
DOS
だった頃はSEをしていた経歴もあるのですが
windows
が発表されたころに衣料のショップを開業しまして
あとは独学なので知識足らずです
できましたら、今後も是非お力添え頂けますよう
お付き合いお願い申し上げます。


directprn  投稿者:inaba  投稿日:08月02日(月)08時00分31 [70]

> 私のXPは普通の何も入ってないXP(home)se3
すみません、sp3です。


directprn  投稿者:inaba  投稿日:08月02日(月)07時58分44 [69]

私のXPは普通の何も入ってないXP(home)se3ですが動きました。
Win98SE2+arago4.5
ではkourogiさんと同じエラーでした。


 投稿者:x  投稿日:08月02日(月)07時30分07 [68]

print001.dllprint002.dll PrintDlgなどの関数を使っていますがこれなら1990年代のWindows 3.xでも動くと思います私のWindows XPではdirectprn.dllも動きますのでWIN32 Platform SDKが入っているかいないかの違いかもしれませんそれと私のdllは素人丸出しのものですのでメモリーの解放などバグがあるかもしれません


directprn  投稿者:kourogi  投稿日:08月02日(月)00時02分29 [66]

win7_64もエラー出ません !
しかも組み込んでrunさせたところバッチリ動作しました
これは便利です。
xp
だと何かが足らないということでしょうか
昔クイックシルバーだった頃、
ツールの恩返しというアドインソフトで感動しましたが
それ以来の感動ものです。


directprn  投稿者:kourogi  投稿日:08月01日(日)23時18分23 [65]

VISTAのマシンだと、エラー出ません !
もう少し検証します。


direcyprn  投稿者:kourogi  投稿日:08月01日(日)22時24分49 [64]

しかしながら、print001が動作するというのは
その原因に関係していないのでしょうか


Directprn  投稿者:kourogi  投稿日:08月01日(日)22時22分11 [63]

お二人での助言、感謝いたします。
dll
は同じフォルダです
私はC言語には縁がないので
そのたぐいのソフトは一切入っていません
X
さんの言われていることをググってみます。


 投稿者:x  投稿日:08月01日(日)21時46分41 [62]

このdllではMicrosoft SDKの関数などを並べていますのでWindowsXP SP2に対応したWIN32 Platform SDKのダウンロードとか無料のMicrosoft Visual C++ 2008 Express Editionとかが入っていないと動かないのかもしれませんなんか面倒ですね


aragoエラー  投稿者:inaba  投稿日:08月01日(日)21時33分29 [61]

kourogiさん、xさんが書かれているとおり、問題のaragoエラーはパスが通っていないエラーと思います。
4回出たということは、私のソースではdirectprn001.dllを最初に4回呼んでいますのでやはりdirectprn001.dllが認識できなかったということだと思います。ちなみに、まったく存在しないhoge.dllprgのソースに書いても同じエラーが出ます。
prg
と同じフォルダにdllを入れるとどうでしょう?


directprn  投稿者:kourogi  投稿日:08月01日(日)21時05分52 [60]

自分も疑って、セキュリティソフトをダウンしてから、再度ダウンロードしました
8,704
バイトです
arago6.5
を用意しましたが 同様です。すみません。


 投稿者:x  投稿日:08月01日(日)20時44分57 [59]

エラーが4回というのは14行ですねdirectprn001.dllはサイズ8.50KBですが0バイトになっていませんか?arago6.2は手元になくてテストできません


directprn  投稿者:kourogi  投稿日:08月01日(日)20時30分00 [58]

inabaさん大変ありがとうございます
もちろんコピペして実行しているのですが
プログラムエラーではなく、一回り枠の小さいaragoエラーと出て
アラゴはこの機能をサポートしていませんと表示されます
(
キャンセル、続行ボタンの無いエラーウインドゥです)

ちなみに下のサンプルをそのままコピペして実行すると
aragoエラー」が4回表示され
当然パネル未設定のk1が無いという 「プログラムエラー」がでます。
当方はARAGO20年付き合ってますがEXTERNは初めてです、
何か、初歩的な勘違いがあるのだと思います。
パソコンを変えたり、新規のフォルダーにaragoをインストールしてみます。
ひつこく迷惑かけているのが 大変申し訳ないです。


directprn  投稿者:inaba  投稿日:08月01日(日)19時12分45 [57]

xさん、ありがとうございます。
kourogi
さん、私のところではうまく動いてくれましたよ。
以下
--
EXTERN CVOID directprn(CINT,CINT,CINT) directprn001.dll
EXTERN CINT hookstartdoc01(CVOID) directprn001.dll
EXTERN CLONG gethookdc01(CVOID) directprn001.dll
EXTERN CINT startdoc01(CLONG,CSTRING) directprn001.dll
EXTERN CINT AbortDoc(CLONG) gdi32.DLL
EXTERN CINT StartPage(CLONG) gdi32.DLL
EXTERN CINT EndPage(CLONG) gdi32.DLL
EXTERN CINT EndDoc(CLONG) gdi32.DLL
directprn(9,2,1)
hookstartdoc01()
print form k1
stor gethookdc01() to hDC01
AbortDoc(hDC01)
startdoc01(hDC01,'
ドキュメント01')
print form
print form end
EndDoc(hDC01)
--


 投稿者:x  投稿日:08月01日(日)18時59分01 [56]

確かにOOPS:何か書き忘れがあります:)と出ましたCINTではCVOIDdllと正確に合わせなければ動きません合っていないのに動いたら困りますコピペするといいと思います


DIRECTPRN  投稿者:kourogi  投稿日:08月01日(日)17時59分23 [54]

アラゴのプロンプトに続けて
ダイレクトに入力しても
EXTERN CINT returndefault01(CVOID) print001.dll
okでした
EXTERN CVOID directprn(CINT,CINT,CINT) directprn001.dll
は同じエラーです、何か設定がわるいのでしょうが、思いつくことがあれば助言下さい。
私にはよくわかりませんが print001のように
EXTERN CINT directprn(CVOID,CVOID,CVOID) directprn001.dll
とすると
何か書き忘れがあります ) と出ます
スペル違いはないです、ファイルも同じディレクトリ内を確認しました。


 投稿者:x  投稿日:08月01日(日)15時27分47 [53]

ロードできないのはEXTERN CVOID directprn(CINT,CINT,CINT) directprn001.dllのスペル間違いがないかやdllのおき場所(ディレクトリ)がokかなどをチェックしてみてくださいセキュリティはオンのままが安心ですこのdllでは複数のプリンタを使い分けることができないです


印刷ダイアログ非表示  投稿者:kourogi  投稿日:0801日(日)1447分11 [52]

お返事頂けまして、大変ありがとうございます。
またわざわざお手数おかけしましたこと感謝申し上げます。
実行しましたところ、ロードできませんアラゴはこの機能をサポートしていませんといったエラーが出ます。
実はhatozendllも同様でした。print001,002は読み込みができ問題ありませんでした。セキュリティはオフにして、arago6.2xpにて使用してます。
POS
レジを作成しレシートプリンターを使用しています、また資料はインクジェットプリンターを分けて使っています
print002.dll
は大変感激しました、directprn001.dllが利用できれば
印刷のときだけBASICに頼らずスピーディにレシートが出るのですが
なんとかなればと願っております。


 投稿者:x  投稿日:08月01日(日)13時52分48 [51]

aragowの印刷ダイアログを非表示にする directprn001.dllをアップロードしました・・・ダウンロードしようとしたらnortonがこのインサイトネットワーク驚異を削除しました このファイルは信頼できないので安全ではないということを示す多くの兆候がありますとなってnortonを停止しないとダウンロードできませんでしたうまく動くかどうかテストできる環境がないのでわかりません


印刷ダイアログ非表示  投稿者:Kourogi  投稿日:07月30日(金)18時57分43 [50]

偶然ネット検索していて
印刷ダイアログを非表示にできるというここのDLLを拝見しました、
まさに10年以上悩んでたことが解決できそうで
びっくりしてます。
ダイアログは非表示でいいのですが
用紙指定や向きの設定はprg内でできないでしょうか
大変あつかましいのですが
使い方の詳細を頂ければ幸いです。


 投稿者:x  投稿日:07月26日(月)18時34分42 [49]

*いっぱい作りました
EXTERN CSTRING han_to_zen(CSTRING,CSTRING) hantozen001.dll
EXTERN CSTRING trimhan(CSTRING,CSTRING) hantozen001.dll
EXTERN CSTRING zen_to_han(CSTRING,CSTRING) hantozen001.dll
EXTERN CSTRING trimzen(CSTRING,CSTRING) hantozen001.dll
EXTERN CSTRING hira_to_kata(CSTRING,CSTRING) hantozen001.dll
EXTERN CSTRING kata_to_hira(CSTRING,CSTRING) hantozen001.dll
*ATOK 2007 Win32API
はや
EXTERN CSTRING kanji_to_han(CSTRING,CSTRING) hantozen001.dll
*IME 2007 COM
インターフェイスおそ
EXTERN CSTRING kanji_to_kana(CSTRING,CSTRING) hantozen001.dll
*kanji_to_kana
opencloseを分けたもの下記のように使います
EXTERN CLONG openife(CVOID) hantozen001.dll
EXTERN CSTRING getife(CLONG,CSTRING,CSTRING) hantozen001.dll
EXTERN CVOID closeife(CLONG) hantozen001.dll
set talk off
STORE '
。「」、・ヲァィア゛オ゛ゥェォャヴメモ田中ュョッー鈴木キケコサシスセあ゛Acあ゜゜あ゜ソタダヂヅツレロワン゛゜' TO a
STORE SPACE(200) TO a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11
? '
【元】'
? a
? '
【全角に】'
stor han_to_zen(a,a1) to a1
? a1
? '
【半角を削除】'
stor trimhan(a,a2) to a2
? a2
? '
【半角に】'
stor zen_to_han(a,a3) to a3
? a3
? '
【全角を削除】'
stor trimzen(a,a4) to a4
? a4
? '
【カタカナに】'
stor hira_to_kata(a,a5) to a5
? a5
? '
【ひらがなに】'
stor kata_to_hira(a,a6) to a6
? a6
? '
【漢字を半角に】'
stor kanji_to_han(a,a7) to a7
? a7
? '
【漢字をかなに】'
stor kanji_to_kana(a,a8) to a8
? a8
? kanji_to_han('
千葉県浦安市舞浜 東京ディズニーランド',a9)
? kanji_to_kana('
千葉県浦安市舞浜 東京ディズニーランド',a10)
*getife()
を使う場合は1回だけ初めにopenife()を終わりにcloseife()を使います
store openife() to ife01
use argyuubin.dbf
stor 1 to c
do while c<=10
stor space(200) to a11
*
ここのように繰り返すときはgetife()が速いです
stor getife(ife01,trim(data3),a11) to a11
? a11
skip
stor c+1 to c
endd
closeife(ife01)


kanji_to_kana  投稿者:inaba  投稿日:07月26日(月)13時45分27 [46]

xさん、こんにちは。いろいろありがとうございます。
hantozen001.dll
kanji_to_kanaって以前から入ってましたっけ?
試してみました。こちらもとても使い勝手がよかったです。
また、openife-getife-closeifeを使った方がいくらか早いような気もしました。気のせい?
getphonetic
が変換前の「かな」、今回のが「漢字の読みの第1候補」と理解すればよろしいでしょうか?
どちらもアプリに組み込んで使えそうですが、IMEがATOKだと問題が起きるなんてことはないでしょうか?
hantozen001.cpp
のBCCによるコンパイルは、msime.hをマイクロソフトからダウンロードして使いました。
最新バージョン1.4ではコンパイル不可、1.3ではOKでした。
ご報告まで。


getphnetic  投稿者:inaba  投稿日:07月13日(火)06時50分22 [44]

xさん、すばらしいです。
MSのIMM2003ですが、うまく動きました。
サザンの掲示板に書き込まれたらいかがでしょう?


 投稿者:x  投稿日:07月12日(月)13時56分49 [43]

keybd001.dllgetphonetic()を入れました最後に確定された分のフリガナだけしか戻りませんのでぱっとしませんkanji_to_han()ですと千葉県浦安市舞浜 東京ディズニーランド(途中に空白があってもok)などがいっきに半角カタカナになりおぉという感じでしたが・・・
EXTERN CSTRING getphonetic(CSTRING) keybd001.dll
*
*
*
*DEFINE ENTRYFIELD
VALIDfunctionの中で
store space(200) to buf01 &&
バッファを確保
store getphonetic(buf01) to text01
? text01


Re:漢字かな変換  投稿者:inaba  投稿日:0712(月)0924分55 [42]

xさん、おはようございます。
>
不具合ばかりで恐縮です
とんでもありません。ソースも公開していただいているので、勉強させていただいています。
>
他のやり方でぼちぼちやってみます
すみません。もしできたらARAGOユーザーは大喜びじゃないでしょうか。


 投稿者:x  投稿日:07月11日(日)15時58分48 [41]

不具合ばかりで恐縮ですkanji_to_han()ATOK 2007(Vista)ですとうまく動きましたがMicrosoft Office IME 2007では動きませんでした他のやり方でぼちぼちやってみます漢字の読みの入力はエクセル住所録などでよく使われていますね


漢字かな変換  投稿者:inaba  投稿日:0711日(日)0451分33 [40]

xさん、おはようございます。いろいろありがとうございます。
> kanji_to_han()
入れました
aragow6.7
aragow4.5zenhan.prgを動かすとkanji_to_hanは空白文字列になりました(他はOKです)。
> Microsoft Visual C++
でコンパイルしています
あ、そういうことなんですね。BCCとばかり思ってました。


 投稿者:x  投稿日:07月10日(土)15時15分30 [39]

hantozen001.dllkanji_to_han()入れました素人丸出しのものですがテスト用くらいにはなるかとここではMicrosoft Visual C++でコンパイルしています


Re:dll作成  投稿者:inaba  投稿日:07月08日(木)12時24分12 [38]

いろいろネットで調べながらgetversion001.cppを以下のように書き直したら動きました。
(1)下の1行を追加
   __declspec(dllexport) void WINAPI dllmain(void){}
(2)すべての関数の前に WINAPI を挿入
   __declspec(dllexport) char * WINAPI getversion(char * file01,char * property01,char * string01);
コマンドラインでコンパイルするのと何か別のツールでコンパイルするのでは、ソースが違うのでしょうか?


IME制御  投稿者:inaba  投稿日:07月07日(水)22時54分46 [37]

次々と矢継ぎ早ですが、すみません。
IMEコントロールでよくあるのが、ひらがな入力して漢字変換すると漢字フィールドに漢字が入り、ルビフィールドにひらがなが入るというコントロールです。
これをARAGOでEXTERNしたいのですが、可能でしょうか?


dll作成  投稿者:inaba  投稿日:07月07日(水)22時04分12 [36]

xさん、こういう場を準備していただいてありがたく存じます。
ご指導どうりBCCをインストールしましたので、私もDLLを作ってみようかと、
cpp
のソースをいただいてコンパイルし、dllはできあがりましたが、prgEXTERNすると、aragoが「ロードできません」とエラーを吐き出します。
cpp
はまったく書き換えていません。
どういうことが考えられるでしょうか?
コンパイルに当たっての注意点など、お気づきのことがありましたら、ご教授くださいませ。


しつこくてすみません  投稿者:inaba  投稿日:0707日(水)2155分00 [35]

xさん、わざわざテストしていただき、ありがとうございます。
> aragow
のプロジェクトで生成されるexeはリソースを変更する
というくだりに反応してしまいました。
arago
で作成したexeは元々リソースがないというか、リソース部分は代わりにargrun.dllが担っているというか・・という気がします。
で、気になったのは xさんが「リソースを変更する」とおっしゃってる部分です。
言葉どうりなら、「リソースの変更」と「リソースの追加」とでは何か違うような・・。
ResHacker
では「変更」ではなく「追加」で期待どうりになりました。

別件ですが、dll作成について改めて投稿させていただきます。


 投稿者:x  投稿日:07月07日(水)15時44分20 [34]

ご指摘のとおりでaragowのプロジェクトで生成されるexeはリソースを変更するとファイルのサイズが変わるためかInvalid Executable Fileのダイアログが表示されて実行できませんでした。


Re:Version Info  投稿者:inaba  投稿日:07月06日(火)09時28分59 [33]

xさん、おはようございます。とても興味深く、不思議なことがおこりました。
1 コマンドプロンプトで実行したら、Cannot open file: winver.h とエラー
  aragorunの時はプロンプト画面が一瞬にして消えたので気がつかなかったのですね。
2 bcc55\binpathを通し、bcc32.cfgilink32.cfgを作り再実行しても同じエラー
3 Includeという環境変数を作り、値をbcc55\includeにし、再実行するとみごとOK。
  当該EXEのプロパティにバージョン情報が追加されました。
ところが
4 そのhoge.exeを実行すると、[Invalid executable file]エラーダイアログ(arago4.5)と出ました。
  hoge.exearago.6.7でコンパイルしたもので、ファイルサイズを比べると正常なものは173kb、コマンドプロンプトでリソースを追加したものは48kbでした。
5 コマンドプロンプトで実行後にできたhoge.resResourceHackerというソフトで元の正常なhoge.exeにリソース追加を実行すると、すべてOKでした。
どういうことが起きたのか不思議です。


 投稿者:x  投稿日:07月05日(月)22時58分05 [32]

書き込みありがとうございます
notepad
で下記のtemp@@@.rcを作ってコマンドラインでC:\borland\bcc55\Bin\brc32.exe temp@@@.rc test.exe(書き込むファイル)を実行するとどうですかbrc32.exetemp@@@.rcと書き込むファイルのディレクトリはokですか?

#include <winver.h>
VS_VERSION_INFO VERSIONINFO
FILEVERSION 2,2,3,4
PRODUCTVERSION 6,6,7,8
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS 0x00000000L
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x411, 1200
END
BLOCK "StringFileInfo"
BEGIN
BLOCK "041104b0"
BEGIN
VALUE "FileDescription","
説明だよー\0"
VALUE "LegalCopyright","
著作権だよー\0"
VALUE "FileVersion","
ファイルバージョンだよー\0"
VALUE "CompanyName","
会社名だよー\0"
VALUE "OriginalFilename","
正式ファイル名だよー\0"
VALUE "ProductVersion","
製品バージョンだよー\0"
VALUE "ProductName","
製品名だよー\0"
VALUE "InternalName","
内部名だよー\0\0\0\0\0\0"
END
END
END


Version Info  投稿者:inaba  投稿日:07月05日(月)20時54分52 [31]

サザンの掲示板からたどってきました。
工夫次第でいろいろな使い方ができそうなDLL、ありがとうございます。
標記のリソース書き込みについての質問です。
ご指導どうり、BolandC++をインストールしてPRGを実行してみましたが、うまくいきませんでした。
コンパイル時にエラーは出ませんでしたが、リソースは書き換わっていないようです。
どんなものでしょうか?


 投稿者:x  投稿日:04月18日(日)16時45分00 [30]

以前のstore tran(a&G.,"@Z 99,999,999.99") to TR_KIN&G.","を削除するのはstore filter(x,'","') to bでできますねON EVENT "CLOSE" ONCLOSE()POBJECTSフォルダにあり皆さん使い古されていると思いますがaragow自前のON EVENT "CLOSE" ONCLOSE()×ボタンもCtrl+F4Alt+F4も処理できますのでそれではだめですか?rmclosebtn()×ボタンを灰色にして無 効にしますがAlt+F4で閉じてしまいます(Alt+F4を無効にすることもできますがCtrl+F4を無効にするのが煩雑です)下記のように ACTIVATE PANELの前にrmclosebtn()ON EVENT "CLOSE" ONCLOSE()を入れます
EXTERN CVOID rmclosebtn(CVOID) keybd001.dll
*
*
*
rmclosebtn()
ON EVENT "CLOSE" ONCLOSE()
ACTIVATE PANEL PANEL01 MODAL
*:************************************************************
FUNCTION ONCLOSE
PRIVATE PNL, RTN
PNL = EVENT("PANEL") &&
イベントの発生したパネル名を取得
IF EMPTY(PNL)
wait "Alt+F4
が押されました"
* wait "
プログラム内の終了処理により終了して下さい"
RTN = .F. &&
何もせずに戻る
* RTN = .T. &&
パネルを閉じる
ELSE
wait "Ctrl+F4
が押されました"
RTN = .F. &&
何もせずに戻る
* RTN = .T. &&
パネルを閉じる
ENDIF
RETURN RTN


keybd001.dll の使い方質問  投稿者:Mishina  投稿日:04月18日(日)11時52分04 [25]

:X さん こんにちは Mishina です
keybd001.dll
の件で 下記のような記述で宜しいですか?
目的は _ロX の[] の働きを止めたいです。

EXTERN CVOID rmclosebtn(CVOID) keybd001.dll
*
ON EVENT "CLOSE" ONCLOSE()
*
*****************************
FUNC ONCLOSE
rmclosebtn()
RETURN .T.


 投稿者:x  投稿日:03月02日(火)13時27分56 [24]

client1.prgのやり方でaragowアプリケーションから/cgi-bin/aragoi.exe?version.prg+ID12345678などとcgiを読みに行きaragoi version.prgIDに合わせたデータ(新しいバージョンの情報やチェックサム)を送り返しaragowアプリケーションでデータを変数に受信し て自分のバージョンのデータと比較してバージョンが新しければ表示するなどできると思いますここまでは送受信エラーが起こっても大きな問題にはならないと 思いますが次にclient.prgのやり方でaragowアプリケーション本体をダウンロードして切り替える場合にはダウンロードしたファイルのチェッ クを十分にする必要があると思いますmd5checksum()を追加しました


 投稿者:x  投稿日:03月01日(月)20時16分35 [18]

テキストファイルはclient1.prg1行ずつstore subs(string01,1,n) to array[1]のように変数に入れることもclient.prgtest.txtなどファイルにダウンロードすることもできますバイナリファイルは1 行ずつの受信はできません


 投稿者:x  投稿日:03月01日(月)19時11分07 [17]

aragoiからファイルを送る場合FOUTPUT() aragoiのマニュアル参照)を使うとテキストファイルもバイナリファイルも送れますindex.htm(テキストファイルの例)や sample.doc(ワードのファイルバイナリファイルの例)を作ってserver.prgをコピペして(その中でファイル名をfile01 MIME(ブラウザで表示させる場合text/html、ダウンロードさせる場合text/plain)をmime01storeしている)ブラウザで /cgi-bin/aragoi.exe?server.prg/cgi-bin/aragoiu.exe?server.prgを表示してみてくださ い前者ではファイルの中身が表示され後者ではダウンロードとなると思います(肝はFOUTPUT() Content-Length:Content-Disposition: attachment; filename=を送らないのでOUTPUT()コマンドで送る)ブラウザでうまく表示されたらaragowclient1.prg(テキストファイ ル受信用)やclient.prg(ファイルダウンロード用)で受信してみてください
追記resvsockfile(sock,'ファイル名',ファイルサイズ,タイムアウト)と4番目の引数タイムアウト(だいたい1030秒)を付けました


httpd001.dll  投稿者:Mishina  投稿日:03月01日(月)15時57分56 [14]

お世話になります。
httpd001.dll
をテストさせて頂きました。cliant.prgは理解できました
server.prg
が良く理解できておりませんが、もう少し説明をして頂くとありがたいです。


旨く出来ました  投稿者:Mishina  投稿日:02月24日(水)12時00分52 [13]

:Xさん ありがとう御座いました。
私が間違えていました。 encode001.dll のおき場所の指摘を受けてハッとしました。
おかげさまで、文字化けせずに保存することが出来ました
EXTERN CSTRING shift_to_utf(CSTRING,CSTRING) &DR_D.encode001.dll

ちなみに、全て SHIFT_JIS  ARAGOI で AJAXは使えることも解りました。
ご指導に感謝しております。 三品隆成

http://www.sansoft.net


 投稿者:x  投稿日:02月24日(水)06時48分16 [12]

私はaragoiuを持っていませんので下記を test.prgとしてaragoi?test.prgaragoiu?test.prgとでブラウザのエンコーディングを変えてみてどう表示されるか 教えてくださいtest.prgaragoi.exearagoiu.exeとのどのフォルダにencode001.dllを入れていますか?

SET COMPATIBLE OFF
EXTERN CSTRING shift_to_utf(CSTRING,CSTRING) encode001.dll
output('Content-type: text/html',1)
output('',1)
output('!00010,
テストの商品,5,5600,!00020,二行目の商品,3,15000',1)
data='!00010,
テストの商品,5,5600,!00020,二行目の商品,3,15000'
output(data,1)
store data to string01
store space(200) to string02
store shift_to_utf(string01,string02) to string02
output(string02,1)


shift_to_utf  投稿者:Mishina  投稿日:02月23日(火)14時42分45 [10]

:Xさん お世話掛けております 三品と申します。
以下は ajaxから引数を持って aragoiuで受け取りdbfに格納する為の一部です。
教えて頂いた encode001.dll を使って記述しましたがの場所が通過できません。
尚 ARAGOWU では 問題なく出来ました

set century on
set exact on
set date to ansi
set compatible off
set lock on

dr_d="../cgi-bin/sanso/"
netok=.t.

*
(:X氏)提供
EXTERN CSTRING shift_to_utf(CSTRING,CSTRING) encode001.dll

* data
には10行分のデータが入力されている "00010,テストの商品,5,5600,!00020,二行目の商品,3,15000,!)
* ajax
から10行分のデータを一度に取り出し、後方でレコードとフィールドに取り出す
 
data=getarg(2)

*
 此処で shift_to_utf を働かせたい
store data to string01
store spac(1000) to string02
*
此処で止まる
※store shift_to_utf(string01,string02) to data &&
この行が通過出来ない?

zei=getarg(3) &&
消費税  文字 999999
heder=getarg(4) &&
ヘッダー 得意コード 日付け "12342010/02/04"
以下 中略 レコードをFIELD毎に切り出す場所
BDATA=gyo&sno.
 &&一レコード分のデータ
for j=1 to 4 &&
項目数=4
bno=str(j,2,0,"0")
lll=len(BDATA)

bb=at(",",BDATA)
BDATA&bno.=left(BDATA,bb-1)
if .not. empt(BDATA)
DO CASE
CASE J=1
TR_SCO=BDATA&bno.
 &&商品コード5桁
CASE J=2
        &&此処が日本語フィールド
*string01 = BDATA&bno.
*string02 = SPACE(200)
※store shift_to_utf(string01,string02) to tr_sna &&
此処で止まる
TR_SNA=BDATA&bno.
CASE J=3
TR_SUU=VAL(BDATA&bno.)
 &&数量
CASE J=4
TR_TANKA=VAL(BDATA)
   &&単価
ENDCASE
BDATA=righ(BDATA,lll-bb)
else
exit
endif
TR_DEN=BANGOC
TR_KIN=TR_SUU*TR_TANKA
next
if .not. empt(tr_sco) &&
行毎に登録
SELE TRUN
APPE AUTO
endif
****************************************************
 shift_to_utf(string01,string02) を使用したいのはどちらか一箇所ですがどちらで行っても
  この行がとおりません。

http://www.sansoft.net/


 投稿者:x  投稿日:01月07日(木)18時24分10 [7]

*aragowdebug
*Cookie
の読み書きDLLです(charset=UTF-8)
SET COMPATIBLE OFF
EXTERN CSTRING recvcookie(CSTRING) cookie001.dll
EXTERN CVOID sendcookieutf(CSTRING) cookie001.dll
EXTERN CSTRING shift_to_utf(CSTRING,CSTRING) cookie001.dll
EXTERN CVOID disputf(CSTRING) cookie001.dll
*****
store '' to debugoutput01
STORE space(6000) to recvutf01
store recvcookie(recvutf01) to recvutf01
IF LEN(recvutf01)=0
STORE space(1000) to recvutf01
STORE shift_to_utf('
ありませんもう一度アクセスすると・・・',recvutf01) TO recvutf01
endi
debugoutput('Content-type: text/html; charset=UTF-8',1)
*output('Set-Cookie: name=123abc',1)
*store 'NAME=tanaka
日本語; expires=Fri, 31-Dec-2010 23:59:59 GMT;' to send01
STORE 'name=123abc
東京特許許可局' TO send01
store space(1000) to sendutf01
store shift_to_utf(send01,sendutf01) to sendutf01
*sendcookieutf(sendutf01)
debugoutput('',1)
outpututf('<html><head><title>Cookie
の読み書き</title></head><body>')
outpututf('
このcgiから送ったcookie<br>')
debugoutput(sendutf01,1)
outpututf('<br>
です<br>')
outpututf('
あなたから送り返されたcookie<br>')
debugoutput(recvutf01,1)
outpututf('<br>
です</body></html>')
*****
disputf(debugoutput01)
func outpututf
para output01
store space(1000) to outpututf01
store shift_to_utf(output01,outpututf01) to outpututf01
debugoutput(outpututf01,1)
retu .t.
func debugoutput
para debugoutput02,dummy
store debugoutput01+debugoutput02+chr(13) to debugoutput01
retu .t.


 投稿者:x  投稿日:01月03日(日)08時55分10 [6]

Safariは日本語をエンコードしないと動かない
Firefox
cookies.sqliteがおかしくなっているとcookieが保存されない


 投稿者:x  投稿日:01月01日(金)10時05分01 [4]

エンコードデコードしなくても普通に動くようで
それならそれでいいけどどこかにそう書いてあるのかな


 投稿者:x  投稿日:01月01日(金)00時44分33 [3]

2009.12.31不具合を直しました
Safari Opera
でもokです



 2010年 



 投稿者:x  投稿日:12月31日(木)15時34分07 [2]

SET COMPATIBLE ONOFF offにすればspace254以上でもokですね


 投稿者:x  投稿日:12月31日(木)14時36分54 [1]

cookieの読み書き
ブラウザがIE Firefox ChromeではokですがSafari Operaでは変ですね



 2009年 



記事No 削除キー