![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть кусочек кода на другом языке. Мне нужно так же открыть этот файл в делфи и загрузить в Мемо.
Код:
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;
}Последний раз редактировалось Admin, 21.02.2016 в 12:42. |
|
#2
|
||||
|
||||
|
Код:
const fn = 'HandRanks.dat'; procedure TForm1.Button1Click(Sender: TObject); begin if FileExists(fn) then Memo1.Lines.LoadFromFile(fn) else ShowMessage(fn + ' not found'); end; 4250 |
|
#3
|
|||
|
|||
|
я уже так пробовал)) ничего не вышло
|
|
#4
|
||||
|
||||
|
Содержимое файла можно посмотреть?
|
|
#5
|
|||
|
|||
|
Нельзя, но как я понял, там должна быть информация по заранее просчитанным исходам в покере рука vs диапазон для определения её эквити (чтобы программа могла работать быстрее, не рассчитывала результат(как сделал я) а искала в этом файле)
|
|
#6
|
||||
|
||||
|
Загрузить то его можно как угодно. Видимо он содержит спецсимволы, которые мемо отказывается показывать, он же для текстовых данных предназначен. Вопрос, что вы делать дальше будете с этими данными?
Код:
Var F: File; Lut: Pointer; begin AssignFile(F, 'H:\Downloads\1\wand.dat'); Reset(F, 1); GetMem(Lut, SizeOf(F)); BlockRead(F, Lut^, SizeOf(Lut)); //Содержимое будет в переменной Lut, но что дальше? CloseFile(F); end; |
|
#7
|
|||
|
|||
|
http://suffe.cool/poker/evaluator.html
Вот весь код (по идее там должны быть карты): Код:
namespace eval
{
public struct TPTEvaluator
{
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;
}
public unsafe static int LookupHand(int[] cards) // to get a hand strength
{
fixed (int* pLut = _lut)
{
int p = pLut[53 + cards[0]];
p = pLut[p + cards[1]];
p = pLut[p + cards[2]];
p = pLut[p + cards[3]];
p = pLut[p + cards[4]];
p = pLut[p + cards[5]];
return pLut[p + cards[6]];
}
}
}Последний раз редактировалось Admin, 21.02.2016 в 14:54. |