問題タブ [clarion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Clarion: C# アセンブリを使用できますか?
Clarion の C# アセンブリを使用できますか? そうでない場合。C# で記述された単純なコンソール アプリケーションを実行し、その出力を Clarion に読み込むことはできますか? どちらの場合も、どのようにしますか?アセンブリの場合、Clarion がアクセスできるようにするために何か特別なことを行う必要がありますか? どちらの場合も、Clarion ではどのようにしますか?
その理由は、C# で記述されたアプリケーションで使用される C# で記述された 2 つのメソッドがあるためです。ただし、Clarion アプリケーションでも同じ方法を使用する必要があります。メソッドは少し複雑なので、Clarion 用に再度メソッドを記述したくありません...
backup - データセット (ディスク上のファイル) に使用するバックアップ ライブラリ/コードは何ですか?
新しい (小さな) アプリOldaerにバックアップ機能を実装しています。スタンドアロンのデスクトップ ファイルがあります (SQL データベースに座っているのではなく)。
周りを見回して、それらを 1 つのファイルにパッケージ化し、その 1 つのファイルを (ハフマンの) 圧縮する Clarion サードパーティ テンプレートを使用することにしました。復元はその逆です。解凍、解凍します。
ただし、これが理想的であるとは確信していません。
データセットにどのバックアップ機能を実装していますか?
もちろん、「バックアップ/復元」機能にはさらに多くの機能があります。場所、追跡/アーカイブ、すぐに使える情報 (アーカイブ ファイルの内容をユーザーに知らせるより良い方法など)。しかし、それは別の質問です。
version-control - クラリオン6のソースコントロール
私たちはまだClarion6Enterpriseでたくさんのアプリケーションを開発しています。クラリオン6でうまく機能するソースコントロールシステムを知っている人はいないでしょうか。
http - Clarion での Web への POST
クライアント用の RESTful API を開発しています。問題は、彼がクラリオンと呼ばれるかなりあいまいな言語を使用していることです。それは独占的で閉鎖的であり、ドキュメントはオンラインで自由に入手できません.
彼のコードから私のコードへのデータの受け渡しについて議論するときはいつでも、彼は「ftp ファイルのアップロード」と直接のサーバー間 SQL について話し始めます。言うまでもなく、これらのアイデアは古き良き時代のビジョンを思い起こさせます。グーグルで調べてみましたが、この言語がHTTP Postリクエストを作成できるという証拠はまったく見つかりません.SSL暗号化を使用して覗き見から保護することは言うまでもありません.
私は、交渉の目的を達成するために彼を導くことができる、十分に具体的なアドバイスを探しています. 特に、XML 要求を FTP 経由でファイルとして渡したり、ディスクに書き込んでスクリプトを呼び出したりすることは避けたいと考えています。言うまでもありませんが、独自のクラリオン サーバー コードや DLL をサーバー上で実行することにも興味がありません。
Clarion は POST 要求を生成できますか? Clarion で XML を生成するのは難しいですか? クライアントがより成功する可能性のある、よりシンプルで使いやすい形式はありますか? キーと値のペアほど複雑なデータはありません。
私はPythonでコーディングしていますが、サーバーにデータを取得する方法があれば、妥当なデータ形式を逆シリアル化できます。
algorithm - 整数の範囲内の各桁を数える方法は?
家、ロッカーのドア、ホテルの部屋などに番号を付けるために使用される金属製の数字を販売していると想像してください。顧客がドア/家に番号を付ける必要がある場合、出荷する各数字の数を見つける必要があります。
- 1~100
- 51~300
- 1 から 2,000、左側にゼロ
明らかな解決策は、最初の数字から最後の数字までループを実行し、カウンターを左にゼロがある場合とない場合の文字列に変換し、各桁を抽出して、それをインデックスとして使用して 10 個の整数の配列をインクリメントすることです。
整数範囲全体をループすることなく、これを解決するより良い方法があるのではないかと思います。
任意の言語または疑似コードでのソリューションを歓迎します。
編集:
Answers review
John at CashCommonsとWayne Conradは、私の現在のアプローチは適切で十分に高速であるとコメントしています。ばかげた例えを使ってみましょう: チェス盤のマスを 1 分以内で数えるタスクが与えられた場合、マスを 1 つずつ数えることでタスクを完了することができますが、より良い解決策は、面と面を数えることです。後で建物内のタイルを数えるように求められる可能性があるため、乗算を行います。
Alex Reisnerは、残念ながら、この問題には関係ないように思われる非常に興味深い数学的法則を指摘しています。
Andresは、私が使用しているのと同じアルゴリズムを提案していますが、部分文字列ではなく %10 操作で数字を抽出しています。
CashCommonsのジョンとphordは、必要な桁数を事前に計算し、それらをルックアップ テーブルに格納するか、生の速度のために配列に格納することを提案しています。これは、固定された絶対的な移動不可能な最大整数値がある場合に適したソリューションになる可能性があります。私はそれらのうちの1つを見たことがありません。
高性能マーク とストレーナは、さまざまな範囲に必要な桁数を計算しました。100万の結果は割合があるように見えますが、他の数の結果は異なる割合を示しています.
ストレーナは、10 の累乗である数の桁数を数えるために使用できる数式をいくつか見つけました。
Robert Harveyは、MathOverflow に質問を投稿した非常に興味深い経験をしました。数学者の 1 人が、数学表記法を使用して解を書きました。
アーロノート数学を使用してソリューションを開発し、テストしました。それを投稿した後、彼は Math Overflow に由来する数式を見直し、そこに欠陥を見つけました (Stackoverflow を指してください:)。
noahlavineはアルゴリズムを開発し、疑似コードで提示しました。
新しい解決策
すべての回答を読み、いくつかの実験を行った後、1 から 10 n -1 までの整数の範囲について次のことがわかりました。
- 1~9の数字はn×10 (n-1)個必要
- 数字 0 の場合、先行ゼロを使用しない場合、n*10 n-1 - ((10 n -1) / 9) が必要です
- 数字 0 の場合、先行ゼロを使用する場合、n*10 n-1 - n が必要です
最初の式はストレーナーによって(おそらく他の人によって)発見され、他の2つは試行錯誤によって発見されました(ただし、他の回答に含まれる場合があります)。
たとえば、n = 6 の場合、範囲は 1 ~ 999,999 です。
- 1 から 9 の数字には、それぞれ 6*10 5 = 600,000 が必要です
- 先行ゼロなしの数字 0 の場合、6*10 5 – (10 6 -1)/9 = 600,000 - 111,111 = 488,889が必要です。
- 数字 0 の場合、先頭にゼロがある場合、6*10 5 – 6 = 599,994が必要です。
これらの数値は、ハイパフォーマンス マークの結果を使用して確認できます。
これらの式を使用して、元のアルゴリズムを改善しました。整数の範囲の最初の数字から最後の数字までループしますが、10 の累乗である数字が見つかった場合は、式を使用して桁数に追加し、1 から 9 までの全範囲の数量をカウントします。または1から99または1から999など。疑似コードのアルゴリズムは次のとおりです。
たとえば、範囲が 786 から 3,021 の場合、カウンターはインクリメントされます。
- 786 ~ 790 を 1 ずつ (5 サイクル)
- 790 から 799 まで 9 ずつ (1 サイクル)
- 799 から 800 まで 1 つずつ
- 800から899まで99ずつ
- 899 から 900 まで 1 つずつ
- 900から999まで99ずつ
- 999 から 1000 まで 1 つずつ
- 1000年から1999年までの999年まで
- 1999 年から 2000 年までの 1 つずつ
- 2000年から2999年までの999年まで
- 2999年から3000年まで1ずつ
- 3000~3010まで1ずつ(10サイクル)
- 3010 年から 3019 年までの 9 回分 (1 サイクル)
- 3019年から3021年まで1回ずつ(2サイクル)
合計: 28 サイクル 最適化なし: 2,235 サイクル
このアルゴリズムは先行ゼロなしで問題を解決することに注意してください。先行ゼロで使用するには、ハックを使用しました。
先頭にゼロを付けた 700 から 1,000 の範囲が必要な場合は、10,700 から 11,000 のアルゴリズムを使用してから、桁 1 のカウントから 1,000 - 700 = 300 を引きます。
ベンチマークとソースコード
元のアプローチ、%10 を使用した同じアプローチ、およびいくつかの大きな範囲に対する新しいソリューションをテストしたところ、次の結果が得られました。
ベンチマーク アプリケーションのスクリーンショット: (ソース: clarion.sca.mx )
完全なソース コードを表示したり、ベンチマークを実行したりしたい場合は、次のリンクを使用してください。
- 完全なソース コード ( Clarion内): http://sca.mx/ftp/countdigits.txt
- コンパイル可能なプロジェクトと win32 exe: http://sca.mx/ftp/countdigits.zip
受け入れられた回答
noahlavine の解決策は正しいかもしれませんが、疑似コードをたどることができませんでした。詳細が欠落しているか、完全に説明されていないと思います。
Aaronaught のソリューションは正しいようですが、コードが複雑すぎて私の好みには合いません。
私はストレイナーの答えを受け入れました。なぜなら、彼の考え方が私をこの新しいソリューションの開発に導いたからです。
sql-server-2005 - SQL 2005 の ODBC リンク サーバーがリモート ボックスから機能しない
SQL 2005がインストールされた開発ワークステーションがあり、その中にクラリオンデータベースへのodbc接続へのリンクサーバーを作成しました。SQL Mgt studio 内で select ステートメントを実行できます。2 番目のワークステーションを使用して、sql mgt studio を使用して最初のボックスの sql に接続し、まったく同じクエリを試してください。
リンク サーバー "liveclarion" の OLE DB プロバイダー "MSDASQL" が、"[SoftVelocity Inc.][TopSpeed ODBC Driver][ISAM]ISAM テーブルが見つかりません" というメッセージを返しました。
何かご意見は?2番目のSQLサーバーでも同じ機能を持っているようです。リンクされた ODBC クラリオン DB に対するクエリで、リモート SQL mgt studio 接続が成功しません。
すべて Windows 認証と同じ AD ユーザーで行われます。
.net - Clarion NET での devExpress WinForms コントロールの使用
Clarion NET での devexpress winforms コントロールの統合はどの程度シームレスですか? それはまったく機能しますか?快適ですか?
mysql - 2つの異なるタイプのデータベース間で1つのテーブルを共有する
私が抱えている問題は、2つの異なるデータベース間で1つのテーブルを同期させたいということです。データベース1はMySQLを搭載したXPサーバー上にありますデータベース2はClarionを搭載したNovellサーバー上にあります。
2つのデータベース間で1つのテーブルユーザーを共有することは可能ですか?したがって、データがデータベース1に配置されると、データベースはデータベース2と自動的に同期します。これが行われると、テーブル:ユーザーは両方のデータベースに同じになりますか?
前もって感謝します!
opengl - Clarionで配列アドレスを正しく渡すにはどうすればよいですか?
プロトタイプ:
変数:
コード:
エラー:
一致するプロトタイプはありません-C:..。
プロトタイプ自体に何か問題がありますか、それとも変数を間違って渡しますか?
詳細については、問題の実際の関数はglSelectBuffer(GLsizei、* GLuint)、PASCALです。
ここで、GLSizeiはULONGと同等であり、GLuintはULONGと同等です。
等式がシステムの故障を引き起こしている可能性はありますか?これまでのところ、他の機能をクラリオンと互換性のあるものに適合させることに他の問題はなかったので、私はそうは思いませんが、これは特に非常に面倒です。この関数は、選択データを保持するためのバッファーとして使用するユーザー定義サイズの配列を探しています。バッファを作成して(myArray ULONG、DIM(30)を参照)、配列のアドレスを渡す必要があるため、変数を渡すだけで十分だと思いましたが、これまでのところ、上記のコンパイルエラーのみが発生しています。 。
どんな助けでも大歓迎です。
java - JavaからClarionテーブルにアクセスする方法
このシステムがでコード化されたこのクライアントがありますClarion
。Java
彼は彼らのシステムからいくつかを公開するためにウェブサービスを必要としAPI
ています。
特定のクラリオンテーブル(.dat
ファイル)にアクセスして変更するための最良のアプローチを知っている人はいますか?