Форум: "Начинающим";
Текущий архив: 2012.05.20;
Скачать: [xml.tar.bz2];
Внизчтение из файла и проблема при его перезаписи Найти похожие ветки
← →
gvozdkoff (2012-01-18 14:02) [0]Всем привет, такое вот дело.
Изsqlite
базы через запрос сохраняю данные в файл.
Результат запроса представлен одним столбцом.
Эти данные передаю вmemo
А изmemo
сохраняю в файл.memo1.Lines.SaveToFile("lat.txt");
Далее, читаю данные из этого файла и преобразовываю(ставлю разделитель между числами, например было 1234.5678 а делаю 12.345678).
var
strltd:string;
LogF: TextFile;
begin
memo1.Clear;
AssignFile(LogF,"lat.txt");
Reset(LogF);
While not EOF(LogF) do
begin
ReadLn(LogF,strltd);
strltd:=Copy(strltd, 1, 9);
strltd:=copy(strltd,1,2)+"."+copy(strltd,3,2)+copy(strltd,6,4);
while strltd[1]="0" do Delete(strltd,1,1);
memo1.Lines.Add(strltd);
memo1.Lines.SaveToFile("lat.txt");
end;
end;
процесс не может получить доступ к файлу так как файл занят другим процессом.
Как я понимаю, это бывает если файл открыт уже, то есть результат запроса я сохранил в созданный файл, но затем файл не закрыл, но пытаюсь прочитать и перезаписать.
Господа как это исправить можно ?
← →
u4enik (2012-01-18 14:08) [1]лучше читайте в мемо сразу
memo1.lines.loadFromFile
далее пробегайтесь по строкам и корректируйте.
for i:=0 to memo1.lines.count-1 do begin
memo1.lines[i]:= mycorrect(memo1.lines[i]);
end;
и затем
memo1.lines.Save
← →
Ega23 © (2012-01-18 14:11) [2]
> лучше читайте в мемо сразу
Зачем? Есть же TStringList, в конце-концов. Тем более, что TMemo именно его внутри и использует. Туда и читать и писать надо,
← →
u4enik (2012-01-18 14:17) [3]совершенно верно, я просто подумал может memo видимое у него и нужны визуальные данные походу..
← →
gvozdkoff (2012-01-18 14:43) [4]Господа, тяжеловато мне ))
Помогите советом и поправьте если что не так,
Вот моя логикаvar
SList: TStringList;
TempStr: String;
i, L:integer;
begin
Slist:= TStringList.Create; // собственно создаю стринглист
SList.LoadFromFile("lat.txt"); // загружаю данные из файла
for i := 0 to SList.Count - 1 do // в общем считаем кол-во строк
begin
TempStr := SList.Strings[i]; //временная строка для опытов ))
L := Length(TempStr); //считаем кол-во символов в строке
end;
SList.SaveToFile("lat.txt");
finally
SList.Free;
И на этом у меня тупик, надо например мне записать в файл только первый символL:=1;
, не срабатывает
← →
gvozdkoff (2012-01-18 14:49) [5]Я конечно думал как вариант сохранить в другой файл )), но блин вроде как по нармальному хочется сделать
← →
RWolf © (2012-01-18 15:01) [6]а в чём затруднение-то? как в исходном коде делали со strltd, так и тут продолжайте с TempStr.
> L:=1;
SetLength(TempStr, 1);
← →
u4enik (2012-01-18 18:10) [7]begin
strltd:=SList.Strings[i];
if system.length(strltd >= 9) THEN begin
strltd:=Copy(strltd, 1, 9);
strltd:=copy(strltd,1,2)+"."+copy(strltd,3,2)+copy(strltd,6,4);
while strltd[1]="0" do Delete(strltd,1,1);
SList.Strings[i]:= strltd;
end;
end
← →
Ega23 © (2012-01-18 18:12) [8]
> begin
> strltd:=SList.Strings[i];
> if system.length(strltd >= 9) THEN begin
> strltd:=Copy(strltd, 1, 9);
> strltd:=copy(strltd,1,2)+"."+copy(strltd,3,2)+copy(strltd,
> 6,4);
> while strltd[1]="0" do Delete(strltd,1,1);
> SList.Strings[i]:= strltd;
> end;
> end
Расстрелять.
← →
u4enik (2012-01-18 18:51) [9]Ega23 ©, ну вылизывать ему код самому прийдется.
я же показал как на его коде, что бы дошло..
ктому же понять что нужно очень тяжело
может ему нужно:
for i := 0 to SList.Count - 1 do begin
SList.Strings[i]:= FloatToStr( StrToFloatDef(SList.Strings[i],0)*100 );
end;
← →
gvozdkoff (2012-01-18 22:22) [10]Господа , большое спасибо за помощь и наставления ))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.05.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c