Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2018.02.11;
Скачать: CL | DM;

Вниз

Помогите прочитать файл   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.005 c
2-1412325941
Александр_2012
2014-10-03 12:45
2018.02.11
Word. Таблица, сквозные строки.


2-1455549531
Dmk
2016-02-15 18:18
2018.02.11
Метод класса отсутствует


11-1266590664
Dimaxx
2010-02-19 17:44
2018.02.11
Добавление айтемов одного PTree в другой


15-1470346201
Юрий
2016-08-05 00:30
2018.02.11
С днем рождения ! 5 августа 2016 пятница


2-1456006403
AgroFish
2016-02-21 01:13
2018.02.11
Помогите прочитать файл