Ошибка с поиском телефона в справочнике код написан на паскаль авс
program FindPhoneNumber;
uses
SysUtils, Classes, Generics.Collections;
var
f: TextFile;
name, phoneNumber: string;
searchName: string;
phoneBook: TDictionary<string, string>;
found: Boolean;
phoneNumberValue: string;
begin
AssignFile(f, 'Text.txt');
Reset(f); // Открываем файл для чтения
Write('Введите ФИО для поиска: ');
ReadLn(searchName);
searchName := Trim(searchName); // Удаляем пробелы в начале и конце строки
phoneBook := TDictionary<string, string>.Create(AnsiLowerCaseComparer); // Используем нерегистрозависимое сравнение
// Читаем данные ФИО и номеров телефонов из файла и добавляем их в словарь
while not Eof(f) do
begin
ReadLn(f, name);
ReadLn(f, phoneNumber);
phoneBook.Add(AnsiLowerCase(name), phoneNumber); // Преобразуем ФИО к нижнему регистру
end;
CloseFile(f);
// Ищем введенное ФИО в словаре (с преобразованием к нижнему регистру)
found := phoneBook.TryGetValue(AnsiLowerCase(searchName), phoneNumberValue);
if found then
WriteLn('Найден номер телефона: ', phoneNumberValue)
else
WriteLn('Номер телефона не найден.');
phoneBook.Free ;
ReadLn;
end.
Пишет телефонный номер не найден что не так в программе? Написано на Паскаль авс
Есть несколько причин, по которым программа не может найти номер телефона. Вот некоторые возможные проблемы, которые нужно проверить:
- Убедитесь, что файл Text.txt существует в той же директории, что и программа, и содержит данные в правильном формате (то есть чередующиеся строки имен и номеров телефонов).
- Проверьте, правильно ли написано имя, которое вы ищете, и соответствует ли оно имени в файле Text.txt.
- Убедитесь, что перед именем или после него в файле Text.txt или в имени, которое вы ищете, нет лишних пробелов.
в абце совсем не шарю, но при обращении к матчасти нашлось ToDictionary. источник
Впечатление, что словарь как тип данных не создан