|
|
Регистрация | << Правила форума >> | 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. |