Форум: "Начинающим";
Текущий архив: 2011.11.13;
Скачать: [xml.tar.bz2];
ВнизСчитывать построчно тхт Найти похожие ветки
← →
alexdn © (2011-07-21 03:50) [0]Вот примерно
f:textfile;
AssignFile(F,FNameM);
reset(F);
seek(f,1);
readln(f);
form2.hP1:=StringToColor(f);
ошибка на seek, но я вообще не помню можно ли так считывать построчно..
← →
brother © (2011-07-21 05:51) [1]
f:textfile;
...
AssignFile(F,FNameM);
reset(F);
while f not eof do
begin
readln(f);
form2.hP1:=StringToColor(f);
end;
оно? в справке по textfile есть готовый код ;)
← →
brother © (2011-07-21 06:06) [2]> но я вообще не помню можно ли так считывать построчно..
нет
← →
SQLEXPRESS (2011-07-21 09:54) [3]TFileSream..
но в Вашем случае проще наверное будет
s: TStringList;
i: Integer;
begin
s := TStringList.Create;
s.LoadFromFile("");
for i := 0 to s.Count - 1 do
form2.hP1:=StringToColor( s.Strings[i] );
← →
alexdn © (2011-07-21 10:09) [4]> brother © (21.07.11 05:51) [1]
да, так и сделал. только как-то так и не понял как строки нумеровать.. тупо поставил свой счётчик в while f not eof do, что-то вроде x:=x+1;
← →
Dennis I. Komarov © (2011-07-21 10:29) [5]
> readln(f);
> form2.hP1:=StringToColor(f);
>
Это специально или ?
← →
alexdn © (2011-07-21 10:41) [6]> Dennis I. Komarov © (21.07.11 10:29) [5]
>
> > readln(f);
> > form2.hP1:=StringToColor(f);
> >
>
> Это специально или ?
заратустра вроде ж не запрещает..
← →
Dennis I. Komarov © (2011-07-21 10:50) [7]Он пяткой в нос запрещает, а вот как прокомментировать то, что тут написано?
← →
alexdn © (2011-07-23 00:00) [8]> Dennis I. Komarov © (21.07.11 10:50) [7]
> Он пяткой в нос запрещает, а вот как прокомментировать то,
> что тут написано?
просто переменная с формы 2, из public..
← →
Германн © (2011-07-23 00:37) [9]Seek для текстовых файлов не работает в принципе.
← →
Германн © (2011-07-23 00:43) [10]
> readln(f);
> form2.hP1:=StringToColor(f);
>
А это просто бред.
Тут просто "перемотали строку", а потом решили преобразовать файловую переменную "влендишным" способом сначала неявно в строку, затем явно в переменную TColor.
← →
alexdn © (2011-07-23 10:57) [11]> Германн © (23.07.11 00:43) [10]
что то не понял. просто считывается строка из файла и преобразуется в цвет.
и почему сначала неявно в строку?
← →
Германн © (2011-07-23 13:18) [12]
> что то не понял. просто считывается строка из файла
> readln(f);
И куда тут считывается строка? В какую переменную?
← →
Anatoly Podgoretsky © (2011-07-23 13:31) [13]> Германн (23.07.2011 13:18:12) [12]
В данном случае в анонимную.
← →
alexdn © (2011-07-23 14:23) [14]> Германн © (23.07.11 13:18) [12]
вообщем я сделал там так, простенькоFNameM:="info.txt";
AssignFile(F,FNameM);
reset(F); x:=0;
While not eof(f) do //задаем цикл до конца файла
begin
readln(f, str); //читаем строку из файла в переменную str
if x=0 then hP11:=StringToColor(str);
if x=1 then p.X:=StrToInt(str);
if x=2 then p.Y:=StrToInt(str);
if x=3 then edit1.text:=str;
x:=x+1;
end;
где p: TPoint; координаты пикселя
← →
alexdn © (2011-07-23 14:26) [15]f:textfile;
← →
alexdn © (2011-07-23 15:10) [16]Удалено модератором
Примечание: Правила читаем
← →
alexdn © (2011-07-23 15:16) [17]Удалено модератором
← →
alexdn © (2011-07-23 15:17) [18]можно было сразу отслеживать изменение системного реестра но мне хотелось с пикселями повозиться..
← →
Германн © (2011-07-24 01:14) [19]
> alexdn © (23.07.11 14:23) [14]
>
> > Германн © (23.07.11 13:18) [12]
> вообщем я сделал там так, простенько
Главное, что на этот раз ты использовал процедуру Readln "правильно"! А дальше - это уже твои заботы.
← →
alexdn © (2011-07-24 09:34) [20]> Германн © (24.07.11 01:14) [19]
тогда тоже было правильно, просто я искал аналог seek, который работает только для записей, но увы не для тхт.
← →
mike (2011-07-24 10:26) [21]
> тогда тоже было правильно
Особенно
> StringToColor(f);
:)
← →
alexdn © (2011-07-24 11:22) [22]> mike (24.07.11 10:26) [21]
> Особенно
> > StringToColor(f);
а что не так..?
← →
mike (2011-07-24 11:34) [23]
> а что не так..?
А что такое f?
← →
alexdn © (2011-07-24 11:50) [24]> mike (24.07.11 11:34) [23]
AssignFile(F,FNameM); всё там норм
← →
Anatoly Podgoretsky © (2011-07-24 12:39) [25]
> mike (24.07.11 11:34) [23]
У тебя может получиться только хряк
← →
Германн © (2011-07-25 00:53) [26]
> У тебя может получиться только хряк
Не понял!
При чём тут "самец свиньи"?
:)
> alexdn © (24.07.11 11:22) [22]
>
> > mike (24.07.11 10:26) [21]
> > Особенно
> > > StringToColor(f);
> а что не так..?
>
А то, что в качестве параметра для функции StringToColor используется файловая переменная, которую в Паскале вообще практически запрещено использовать не по назначению!
← →
alexdn © (2011-07-25 10:09) [27]> Германн © (25.07.11 00:53) [26]
> А то, что в качестве параметра для функции StringToColor
> используется файловая переменная, которую в Паскале вообще
> практически запрещено использовать не по назначению!
интересненько, и какие катастрофы предвидятся?..
← →
Dennis I. Komarov © (2011-07-25 10:15) [28]До чего смешные крякеры пошли...
← →
alexdn © (2011-07-25 10:26) [29]> Dennis I. Komarov © (25.07.11 10:15) [28]
Это просто утилитка.. к тому же сырая...
← →
Anatoly Podgoretsky © (2011-07-25 11:45) [30]> alexdn (25.07.2011 10:09:27) [27]
А как ты представляешь получение цвета в строковом виде из файловой
переменной?
← →
MsGuns © (2011-07-25 11:50) [31]Это будет файлуоловый цвет :)
← →
Dennis I. Komarov © (2011-07-25 11:51) [32]
> А как ты представляешь получение цвета в строковом виде
> из файловой переменной?
Последняя версия дельфи такое поддерживает. Автоматически смотрит какого цвета файл через файловую переменную. Если f описать как textfile, то автоматически возвращает строку :)
← →
Anatoly Podgoretsky © (2011-07-25 11:51) [33]
> При чём тут "самец свиньи"?
А то что с его знаниями может получиться только Винни Пух
← →
alexdn © (2011-07-25 12:23) [34]> Anatoly Podgoretsky © (25.07.11 11:45) [30]
> А как ты представляешь получение цвета в строковом виде
> из файловой
> переменной?
но ведь работает же.. например первая строчка в текстовом $00C46103
hP11:=StringToColor(str);
записывалась она - writeln(F,ColorToString(form2.hP1));
т.е. и считывается тоже вполне норм..
← →
alexdn © (2011-07-25 13:04) [35]и потом сравнивается с hP1i:=GetPixel(GetDC(0),p.X,p.Y); так что всё там правильно.
← →
Юрий Зотов © (2011-07-25 16:53) [36]
> и потом сравнивается с hP1i:=GetPixel(GetDC(0),p.X,p.Y);
Нельзя так делать, будет утечка ресурсов. И Вам об этом уже говорили. И даже правильный код показывали.
Если не хотите учиться, то зачем задаете вопросы?
← →
alexdn © (2011-07-25 17:25) [37]> Юрий Зотов © (25.07.11 16:53) [36]
> Если не хотите учиться, то зачем задаете вопросы?
чтобы учиться).. я люблю учиться на практике.
← →
alexdn © (2011-07-25 22:09) [38]> Юрий Зотов © (25.07.11 16:53) [36]
а почему там так погано с памятью у GetDC..? и вообще утечки чем чреваты, точнее насколько они масштабны?..
← →
Игорь Шевченко © (2011-07-25 22:28) [39]справку читай, пакостник
← →
Германн © (2011-07-26 00:27) [40]
> а почему там так погано с памятью у GetDC..? и вообще утечки
> чем чреваты, точнее насколько они масштабны?..
>
Все или почти все (точно скажут мастера) функции работающие с DC заставляют ОС выделять память под этот самый Display/Device Context. А кто эту память освобождать будет? Пушкин? Сами эти функции такого не могут. Они же не знают, когда этот контекст уже не нужен.
Чем чреваты утечки? Тем что если программа много раз запросит ОС выделить память и ни разу не освободит её, то памяти надолго не хватит, даже с учётом того, что память "виртуальная".
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.11.13;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.005 c