
Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
народ хельп как читать из файла..
народ хельп как читать из файла..
собственно как это сделать.....
дельфийские темы не помогают.. да и не узнает стелса типа переменной ТЕКСТ... в примерах дельфи вроде инт оф текс.. кароч шота такое немеренное.. кароче хелп ) как прочитать построчно.. да и еще.. я вот подумываю в инже круто можна было мутить через exec(waittargettile 1234 1234 1234 1234) к примеру... а как тута... нада придумать типа чтоб изменяло строки.. или сделать 4- мерный массив... кароч что от вас господа требуется.. дайте команды читки.. посимвольнои и построчно..

Так что тебе надо
Будь добр пиши топики грамотнее
Вот тебе пример как загрузить данные с файла в массив:

Будь добр пиши топики грамотнее

Вот тебе пример как загрузить данные с файла в массив:
Code: Select all
program LoadTilesDemo;
var Tiles : array [1..50] of array [1..4] of Integer;
function LoadTilesFromFile (FileName : String) : Boolean;
var MyStringList : TStringList;
i,n : integer;
S : String;
begin
Result := true;
MyStringList := TStringList.Create;
MyStringList.LoadFromFile(FileName);
if MyStringList.Count > 0 then for i := 0 to MyStringList.Count - 1 do
begin
S := MyStringList.Strings[i];
if S = '' then Result := false;
with TStringList.Create do
try
Delimiter := ' ';
DelimitedText := S;
if Count = 4 then
begin
for n := 0 to 3 do Tiles[i][n] := StrToInt(Strings[n]);
end;
finally
Free
end;
end; {end for}
MyStringList.Free;
end; {end function LoadTilesFromFile}
Begin
if LoadTilesFromFile('myfile.txt') then
begin
{Do Something}
end
else AddToSystemJournal('Error Loading Tiles from file');
End.
Miralex wrote:TstringList использовал? Про метод Create не забылRead of address 00000025 at 1.466![]()
![]()
Скрипт покажи.
читай предыдущий пост.. я просил раскажи про класс этот... как его там..TStringList !!! а лучше ПРОСТО СКИНЬ КУСОК КОДА ГДЕ КЛАСС ОПИСАН ЭТОТ !!!!! тада я сам пойму что к чему...
ЗЫ:в нете толком не описан этот класс.. тока ляля тополя.. а методов нет..
вобщем я понял для чего класс такой извращенный.. можно ли просто загрузить из файла инфо в массив некий.. потом из этого массива разбить на части уже... в васике это сделалось бы за 5 строк.. в сишке ну чуть больше... даи вот на нормальном паскале написан код..
procedure slovafull; {заполняем слова из файла}
var Fslov:text;
i,j:byte;
begin
assign(fslov,'slova.slo'); reset(fslov);
I:=0 ;
while not eof(fslov) do
begin
inc(i);
readln(fslov,slovo);
end;
n:=i;
close(fslov);
end;
procedure slovafull; {заполняем слова из файла}
var Fslov:text;
i,j:byte;
begin
assign(fslov,'slova.slo'); reset(fslov);
I:=0 ;
while not eof(fslov) do
begin
inc(i);
readln(fslov,slovo);
end;
n:=i;
close(fslov);
end;
ф-ции Assign, Reset и прочие, для работы с файлами напрямую - Pascal Script не поддерживает 
Позже сделаю вручную их.
Delimiter и DelimitedText к сожалению некорректно работают ... позже исправлю.
Но это все равно не значит что нет способов работать с файлами
Вот тебе готовый пример скрипта:
Содержимое файла myfile.txt:
Результат работы:

Позже сделаю вручную их.
Delimiter и DelimitedText к сожалению некорректно работают ... позже исправлю.
Но это все равно не значит что нет способов работать с файлами

Вот тебе готовый пример скрипта:
Code: Select all
program LoadTilesDemo;
var Tiles : array [1..50] of array [1..4] of Integer;
i : Integer;
function LoadTilesFromFile (FileName : String) : Boolean;
var MyStringList : TStringList;
i : integer;
S : String;
Tile,X,Y,Z : Integer;
begin
Result := true;
try
MyStringList := TStringList.Create;
MyStringList.LoadFromFile(FileName);
if MyStringList.Count = 0 then Result := false
else for i := 0 to MyStringList.Count - 1 do
begin
S := MyStringList.Strings[i];
Tile := StrToInt(Copy(S,1,4));
X := StrToInt(Copy(S,6,4));
Y := StrToInt(Copy(S,11,4));
Z := StrToInt(Copy(S,16,4));
Tiles[i+1][1] := Tile;
Tiles[i+1][2] := X;
Tiles[i+1][3] := Y;
Tiles[i+1][4] := Z;
end; {end for}
finally
MyStringList.Free;
end;
end; {end function LoadTilesFromFile}
Begin
if LoadTilesFromFile('myfile.txt') then
begin
{Do Something}
for i := 1 to 10 do
begin
AddToSystemJournal(IntToStr(Tiles[i][1])+' '+IntToStr(Tiles[i][2])+' '+IntToStr(Tiles[i][3])+' '+IntToStr(Tiles[i][4]));
end;
end
else AddToSystemJournal('Error Loading Tiles from file');
End.
Code: Select all
1234 1244 1242 1212
1231 1231 2342 2323
Code: Select all
23:03:52: Compiling
23:03:53: Compiled succesfully
23:03:53: 1234 1244 1242 1212
23:03:53: 1231 1231 2342 2323
23:03:53: 0 0 0 0
23:03:53: 0 0 0 0
23:03:53: 0 0 0 0
23:03:53: 0 0 0 0
23:03:53: 0 0 0 0
23:03:53: 0 0 0 0
23:03:53: 0 0 0 0
23:03:53: 0 0 0 0
23:03:53: Succesfully executed
23:03:53: Script(1084) stoped successfuly
-
- Neophyte
- Posts: 10
- Joined: 17.02.2006 17:32
- Contact:
Code: Select all
type yt = array[0..200] of array[1..4] of word;
g : yt;
procedure LoadTiles(lol : string); {30}
var Tmp, FileList : TStringList; M,N : Integer;
Begin
FileList := TStringList.Create();
Tmp := TStringList.Create();
FileList.LoadFromFile(lol);
for m:=0 to FileList.count-1 do
BEGIN
StrBreakApart(FileList.Strings[m], ' ', Tmp);
for n:=0 to 3 do g[m+1][n+1]:=StrToInt(Tmp.Strings[n]);
END;
g[0][1]:=FileList.count;
FileList.Free;
Tmp.Free;
End;