С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
1

Чтение всего файла методом FileRead

25.03.2013, 23:12. Показов 5122. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Имеется файл в котором записаны строки, нужно их все вытащить:

FileRead(hFile,s,сюда нужно вставить размер);

и как потом подсчитать количество символов?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2013, 23:12
Ответы с готовыми решениями:

Чтение из файла и запись в целочисленную переменную c использованием FileRead
Здравствуйте. Хотел взять из текстового файла 2 числа разделенные через пробел(других цифр нет), но...

Чтение всего файла fstream
В общем мне казалась задача вполне очевидна и частая считать файл целиком в строку, но почему-то я...

Чтение всего текста из файла в string
Собственно вопрос. Как читать весь текст из файла в string Не в string а в string Также к...

Чтение и вывод всего содержимого файла на экран
Здравствуйте! Подскажите пожалуйста решение такой проблемы: В PascalABC.NET мне нужно загрузить...

16
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
25.03.2013, 23:26 2
Length?
0
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
25.03.2013, 23:54  [ТС] 3
нет конечно же
Ну может это для подсчета количество символов, второй вопрос не обязателен
0
Пишу на Delphi...иногда
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
26.03.2013, 00:10 4
Цитата Сообщение от Helldrg Посмотреть сообщение
Имеется файл в котором записаны строки, нужно их все вытащить:
FileRead(hFile,s,сюда нужно вставить размер)
именно строки и именно FileRead? как-то так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
var
  pc      :PAnsiChar
  hf,size :LongInt;
begin
  hf:=FileOpen('c:\zz.txt',fmOpenRead);
  size:=GetFileSize(hf,0);
  StrAlloc(pc,size);
  FileRead(hf,pc[0],size);
  FileClose(hf);
// что-то делаем с pc
  StrDispose(pc);
end;
взято здесь
имхо для строк лучше пользовать TStringList
1
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
26.03.2013, 00:15  [ТС] 5
ОГО
А как pc в строку перевести? Ну тоесть, сделать одну большую строку что бы потом можно было из нее слова вырезать. Как вырезать я разберусь, а вот с pc[0] я такого типа данных даже не слышал))
Если это трудно сделать, томожно в принципе и не fileread использовать, но нужно fileopen
0
Пишу на Delphi...иногда
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
26.03.2013, 00:30 6
Цитата Сообщение от Helldrg Посмотреть сообщение
А как pc в строку перевести
Delphi
1
2
3
4
5
var
   tmp:AnsiString;
begin
...
   tmp:=AnsiString(pc);
если текст юникод (два байта на символ), то лучше пользовать не PAnsiChar, а PWideChar, соответсвенно тип tmp:WideString;
1
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
26.03.2013, 00:33  [ТС] 7
а как к стрингу привести это дело?)
0
Пишу на Delphi...иногда
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
26.03.2013, 00:38 8
Цитата Сообщение от Helldrg Посмотреть сообщение
а как к стрингу привести это дело?)
Цитата Сообщение от cotseec Посмотреть сообщение
tmp:=AnsiString(pc);
чем не приведение к типу? (можно вместо AnsiString просто написать string, в зависимости от версии Delphi это может быть как AnsiString, так и WideString)
1
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
26.03.2013, 00:58  [ТС] 9
аааааа все понял!!! Спасибо!!!!

Добавлено через 5 минут
Цитата Сообщение от cotseec Посмотреть сообщение
var
* pc * * *:PAnsiChar
* hf,size :LongInt;
begin
* hf:=FileOpen('c:\zz.txt',fmOpenRead);
* size:=GetFileSize(hf,0);
* StrAlloc(pc,size);
* FileRead(hf,pc[0],size);
* FileClose(hf);
// что-то делаем с pc
* StrDispose(pc);
end;
У меня не работает(
0
angstrom
26.03.2013, 01:09 10
По F8 прошагивал, что именно не отрабатывает?
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
26.03.2013, 01:27  [ТС] 11
undeclareted identifier GetFileSize

Добавлено через 28 секунд
Цитата Сообщение от angstrom Посмотреть сообщение
По F8 прошагивал, что именно не отрабатывает?
Даже не компилится
0
angstrom
26.03.2013, 01:31 12
Пиши Windows.GetFileSize.
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
26.03.2013, 01:35  [ТС] 13
undeclareted identifier Windows))))))
0
angstrom
26.03.2013, 01:37 14
Так пропиши его в uses.
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
26.03.2013, 01:41  [ТС] 15
Incompatible types Cardinal and PAnsiChar в строке StrAlloc(pc,size);
0
angstrom
26.03.2013, 01:53 16
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
program test4;
 
{$APPTYPE CONSOLE}
 
uses
  Windows, SysUtils;
 
var
  St       : AnsiString;
  Handle   : Cardinal;
  FileSize : Int64;
  buf      : PAnsiChar;
  Count    : Integer;
 
begin
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  WriteLn('Введите путь к файлу');
  ReadLn(St);
  
  Handle := CreateFileA(PAnsiChar(St), GENERIC_READ, FILE_SHARE_READ, NIL,
                        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 
  if Handle <> INVALID_HANDLE_VALUE then
  begin
    FileSize := Windows.GetFileSize(Handle, NIL);
    GetMem(buf, FileSize);
    ReadFile(Handle, Buf[0], FileSize, UInt(Count), NIL);
    St := Buf;
    FreeMem(Buf);
    CloseHandle(Handle);
  end;
end.
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
26.03.2013, 01:57  [ТС] 17
Спасибо!
0
26.03.2013, 01:57
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.03.2013, 01:57
Помогаю со студенческими работами здесь

Чтение всего файла в одну динамическую строку
Здравствуйте! Искал на форуме ответ на свой вопрос, нашел кучу похожих тем, но никак не смог...

Чтение всего файла в одну динамическую строку
Здравствуйте! Искал на форуме ответ на свой вопрос, нашел кучу похожих тем, но никак не смог...

Чтение всего файла и запись в другой файл
В общем задача в том что бы построчно прочитать файл и записать его в другой, не скопировать... не...

Чтение всего файла, а не только до первого переноса
Недавно научился делать простые сайты, и уже принялся учить других как это делать. Решил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru