Форум: "Начинающим";
Текущий архив: 2018.02.11;
Скачать: [xml.tar.bz2];
ВнизПомогите прочитать файл Найти похожие ветки
← →
AgroFish (2016-02-21 01:13) [0]Есть кусочек кода на другом языке. Мне нужно так же открыть этот файл в делфи и загрузить в Мемо.
public static int[] _lut;
public static unsafe void Init() // to load a table
{
_lut = new int[32487834];
FileInfo lutFileInfo = new FileInfo("HandRanks.dat");
if (!lutFileInfo.Exists)
{throw new Exception("Handranks.dat not found");}
FileStream lutFile = new FileStream("HandRanks.dat", FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 4096);
byte[] tempBuffer = new byte[32487834 * 4];
lutFile.Read(tempBuffer, 0, 32487834 * 4);
fixed (int* pLut = _lut)
{ Marshal.Copy(tempBuffer, 0, (IntPtr)pLut, 32487834 * 4);}
tempBuffer = null;
}
← →
Rouse_ © (2016-02-21 09:25) [1]В чем проблема то? Открываешь и читаешь.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
procedure Foo;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.Foo;
var
S: TStringStream;
begin
S := TStringStream.Create;
try
S.LoadFromFile("HandRanks.dat");
Memo1.Text := S.DataString;
finally
S.Free;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Foo;
end;
end.
← →
Rouse_ © (2016-02-21 09:26) [2]Хотя по сути достаточно и вот такого вызова:
Memo1.Lines.LoadFromFile("HandRanks.dat");
← →
Dimka Maslov © (2016-02-21 10:19) [3]
> Хотя по сути достаточно и вот такого вызова:
А из чего стало ясным, что файл текстовый, а не двоичный?
← →
Rouse_ © (2016-02-21 10:58) [4]Дим, человеку в Мемо загрузить нужно.
Каков вопрос - таков ответ
← →
AgroFish (2016-02-21 11:27) [5]Содержимое файла посмотреть нельзя, но как я понял, там должна быть информация по заранее просчитанным исходам в покере рука vs диапазон для определения её эквити (чтобы программа могла работать быстрее, не рассчитывала результат(как сделал я) а искала в этом файле)
← →
Inovet © (2016-02-21 11:30) [6]> [5] AgroFish (21.02.16 11:27)
> Содержимое файла посмотреть нельзя
Это как, не текстовый в смысле? Тогда зачем его грузить в Memo?
← →
AgroFish (2016-02-21 11:39) [7]Есть готовый проект на Джава, с исходниками (Там кода макс 2 страницы)
https://github.com/chenosaurus/poker-evaluator
Есть кто то сможет переписать на делфи, куплю за 20ку.
← →
AgroFish (2016-02-21 11:41) [8]JavaScript это
← →
Rouse_ © (2016-02-21 12:02) [9]Рассчет силы руки в техасском холдеме?
Фига себе курсовые начали давать :)
← →
Rouse_ © (2016-02-21 12:05) [10]Зы писать код и продавать его за 20 тыщ принципиально не буду, но научить как это сделать - могу, если готов потратить на это свое время
← →
AgroFish (2016-02-21 12:36) [11]Это не курсовая, а для личного пользования. Я написал свой алгоритм, но он получился медленным 100 000 симуляций - 24сек. А эти алгоритмы, используют из HandRanks.dat какие то готовые просчитанные данные, и их скорость этого вырастает в 10-100 раз. А что там в этом файле, как получить доступ к данным, я ума не приложу, в инете нашёл несколько вариантов на С и ДжаваСкрипт, но понять их не могу.
← →
Kilkennycat © (2016-02-21 13:02) [12]все, что нужно для понимания, что в файле dat
a)
var p = 53;
for (var i = 0; i < cards.length; i++) {
p = this.evalCard(p + cards[i]);
}
b)
evalCard: function(card) {
return this.ranks.readUInt32LE(card * 4);
}
}
c)
handType: p >> 12,
handRank: p & 0x00000fff,
value: p,
handName: this.HANDTYPES[p >> 12]
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.02.11;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c