Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1454172714
Dmk
2016-01-30 19:51
2018.02.11
WM_WINDOWPOSCHANGED


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


15-1470045469
sniknik
2016-08-01 12:57
2018.02.11
Можно ли залогинится в один домен под учеткой другого?


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


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский