Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1326622195
brother
2012-01-15 14:09
2012.05.20
Продам аккаунт World Of Tanks


2-1326541097
Jimmy
2012-01-14 15:38
2012.05.20
PNGZLib и LoadFromResourceName


15-1326702784
картман
2012-01-16 12:33
2012.05.20
массив случайных чисел заданной суммы


15-1320098450
Бездомный
2011-11-01 01:00
2012.05.20
Драйвер виртуальной звуковой карты


4-1256905967
webpauk
2009-10-30 15:32
2012.05.20
Извлечение объекта из lnk-файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский