Delphi - Подскажите, что за ошибка?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by HyperOne, 29 Apr 2013.

  1. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3
    Добрый день, у меня такой вопрос:
    Пытаюсь заменить в текстовом файле определенные строки, делаю это так:

    Code:
    with TStringList.Create do
    begin
    LoadFromFile(ExtractFilePath(paramstr(0))+'\данные\fff.txt');
    Strings[4] := 'Вася';
    Strings[5] := 'Игорь';
    Strings[15] := 'Сергей';
    Strings[43] := 'Никита';
    SaveToFile(ExtractFilePath(paramstr(0))+'\данные\fff.txt');
    Free;
    end;
    Всё компилируется нормально, но при работе вылазит ошибка (скрин прилагаю).
    Подскажите, в чем проблема? Что и где нужно исправить?

    [​IMG]
     
  2. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    Английский не учил?) Тебе же ясно сказали, что в списке нет 4 элемента, скорей всего в файле меньше 5 строк
     
  3. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    http://6url.ru/ahEI
     
  4. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3

    Четвертый элемент точно есть... В файле больше ста строк даже.
     
  5. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3

    Ай да умняша :)
    Я же не спрашиваю "как это переводиться", вопрос был "Что и где нужно исправить?"
     
  6. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    экстрасенсов то здесь нету ;) содержимое файла, который читается проверь, потому как Delphi все же гласит, что 5 строк там нету, а если ранее не вылетают ошибки, значит файл загрузился нормально
     
  7. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3

    В том то и дело, содержимое файла в порядке. Видимо почему то этот файл не считывается в TStringList, но почему... Кто в курсе, может код неправильно составлен?
     
  8. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    выведи соделржимое с помощью ShowMessage() и посмотри каким будет результат
     
  9. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3
    Странно... Попробовал вывести содержимое файла в Memo функцией Memo1.Lines.LoadFromFile('C:\ffff.txt'); - вывело какие-то кракозябры:

    Code:
    ÿþ<
    Хотя в текстовом файле куча текста...... WTF??? :confused:
     
    #9 HyperOne, 29 Apr 2013
    Last edited: 29 Apr 2013
  10. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3
    Разобрался! Оказывается в текстовом файле почему-то была кодировка "UCS Little Endian", преобразовал всё в ANSI - всё заработало как надо.

    qw1mb1 благодарю за наводку!