1. Pascal / Говнокод #19109

    −44

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    procedure TForm1.FormCreate(Sender: TObject);
     
    const BUFSIZE=1; EOLN=#13;
     
    var   TempString : String ;
          Symb       : PChar;
          FText      : TFileStream;
          File_Name:String;
     
    begin
      Memo1.Clear;
     // File_Name:='D:\Projects\Bpl\ТЗ\testlog.txt';
      File_Name:='G:\test1.txt';   //сюда вбиваем имя 
      FText:=TFileStream.Create(File_Name,fmShareDenyNone);   //открываем
      FText.Seek(0,soFromBeginning);    //переходим на начало
      repeat
          GetMem(Symb,BUFSIZE);             //выделяем память под символ для чтения
          FText.Read(Symb^,BUFSIZE);        //читаем
          TempString:=TempString+Symb^;  //складываем символы в строку
          if (Symb^=EOLN) then                 //если конец строки то выводим строку в мемо и "обнуляем"
            begin
              Memo1.Lines.Add(TempString);
              TempString:='';
            end;
      until FText.Read(Symb^,BUFSIZE)=0;   //пока читается
    end;

    Пятиминутка юмора

    Запостил: Firewa11er, 30 Ноября 2015

    Комментарии (15) RSS

    • Сишнику дали в руки Делфи?
      Ответить
      • Если судить по отсутствию FreeMem, то скорее жабопитуху.
        Ответить
    • const BUFSIZE=1
      > Of course, I'd also suggest that whoever was the genius who thought it was a good idea to read things ONE F*CKING BYTE AT A TIME with system calls for each byte should be retroactively aborted.
      Ответить
    • Ничего не понель, поставил лайк типо понель.
      Ответить
    • Кстати, а оно же каждый второй символ пропускает?
      Ответить
      • Самая гадкая ошибка начинающего программиста, которую я знаю. Потом джва дня таращишься в код и не понимаешь, в какую вселенную тебя засунули, пока ты спал. Я сейчас минут 5 не мог понять, в чём дело.
        Ответить
    • >>> repeat
      А это говно не навернётся на пустом файле?
      Ответить
    • Столько комментов, и все молчат про memory leak? GetMem() то в цикле.
      Ответить
      • А что, в паскале нет GC?
        Ответить
        • В паскале нет. Хотя, про современные ничего не знаю. В потомках точно есть.
          Ответить
    • procedure TForm1.FormCreate(Sender: TObject);
      var File_Name:String;
      begin
        Memo1.Clear;
        File_Name:='G:\test1.txt';   //сюда вбиваем имя 
        Memo1.Lines.LoadFromFile(File_Name);
      end;
      Ответить

    Добавить комментарий