Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.05.20;
Скачать: CL | DM;

Вниз

чтение из файла и проблема при его перезаписи   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
2-1326288747
JohnKorsh
2012-01-11 17:32
2012.05.20
Индикация версии программы.


15-1326382496
brother
2012-01-12 19:34
2012.05.20
Хочу не понятного?


15-1326278247
>|<
2012-01-11 14:37
2012.05.20
Печать наклейки на USB-принтере


15-1326421412
Андрей_1
2012-01-13 06:23
2012.05.20
Delphi 6 и Windows 7


15-1325852857
Гость
2012-01-06 16:27
2012.05.20
Demo