Главная страница
    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.005 c
2-1455641950
Дмитрий
2016-02-16 19:59
2018.02.11
Программное создание dbf


2-1455961562
JohnKorsh
2016-02-20 12:46
2018.02.11
Запись со входа аудиокарты.


15-1470164291
andrd
2016-08-02 21:58
2018.02.11
Программирование для Android


4-1283707527
irzyxa
2010-09-05 21:25
2018.02.11
Отмена меню пуск


2-1456006403
AgroFish
2016-02-21 01:13
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский