1. Ошибка времени выполнения: «Данный формат пути не поддерживается».
Это самая известная ошибка, которую рано или поздно встречает любой начинающий программист. Взгляните на картинку:
Впервые встретившись с этой ошибкой, можно прийти в недоумение. Файл, из которого мы собираемся читать, на месте. Он доступен и нормально открывается текстовым редактором. Тем не менее, что-то не так. На самом деле, все просто: во время набора текста программы вместо латинской «ЦЭ» была напечатана русская «ЭС». К счастью, такая ошибка единственная в своем роде. Раскладки «qwerty» и «йцукен» имеют совпадение только в одном месте.
2. Ошибка времени выполнения: «Файл не найден».
Еще одна «механическая» ошибка, связанная с использованием процедуры Assign. В принципе, история похожа на рассказанную выше. Автор программы видит, что файл не найден, идет в папку «123» и не понимает: «Как не найден? Вот же он!»
Все просто: вместо нужного вам текстового файла «55.txt» вы создали файл с именем «55.txt.txt» . Этой ошибки не будет возникать, если вы для себя четко раз и навсегда уясните, что такое расширение в имени файла. И вообще, не пользуйтесь проводником в Windows, а работайте в менеджере файлов, например, в Total Commander.
I wrote this program and I just can’t figure out what is wrong with it.
The SkaitytiDuomenis (read values) procedure takes two arrays as arguments so it can read coordinates from a text file and store them in the arrays, but the problem is it doesn’t really read it. There is something wrong with the assign() part, but I can’t figure it out for the life of me. Anyone who helps will be greatly appreciated, as this is a state exam I’m trying to prepare for.
program Uzduotis1;
type
masyvas = array[1..50] of integer;
{*************************Kintamieji************************}
var
Duomenys, Rezultatai :text;
x, y :masyvas; {koordinates (x;y) }
UzsakymuSk, {uzsakymu skaicius}
DienosKm, {dienos kilometrazo limitas}
NuvaziuotiKm, {nuvaziuotu kilometru suma}
LikeKlientai, {neaptarnautu klientu skaicius}
UzsakymoNr {atliekamo uzsakymo numeris}
:integer;
{*************************Proceduros************************}
procedure SkaitytiDuomenis(var a,b:masyvas);
var i:integer;
begin
for i:=1 to UzsakymuSk do
readln(Duomenys, a[i], b[i]);
end;
procedure IsvestiRezultatus;
begin
rewrite(Rezultatai);
write(LikeKlientai,' ',NuvaziuotiKm);
close(Rezultatai)
end;
{************************Funkcijos**************************}
function atstumas(a,b :integer) :integer;
begin
atstumas := (abs(a) + abs(b)) * 2;
end;
{********************Pagrindine programa********************}
begin
assign(Duomenys,'C:\Duomenys\U1.txt');
assign(Rezultatai,'C:\Duomenys\U1rez.txt');
reset(Duomenys);
readln(Duomenys,UzsakymuSk,DienosKm);
SkaitytiDuomenis(x,y);
NuvaziuotiKm := 0;
LikeKlientai := UzsakymuSk;
UzsakymoNr := 1;
while ((UzsakymoNr<UzsakymuSk) and (NuvaziuotiKm<DienosKm)) do
begin
NuvaziuotiKm := NuvaziuotiKm + atstumas(x[UzsakymoNr],y[UzsakymoNr]);
LikeKlientai := LikeKlientai - 1;
UzsakymoNr := UzsakymoNr + 1
end;
IsvestiRezultatus;
end.
This is the input file:
14 30
2 3
3 –1
-2 –4
–3 0
-2 4
0 2
5 -4
1 2
4 -3
2 1
-5 -5
-1 0
0 5
2 5
program test;
var
myfile: text;
begin
assign(myfile, "test1.txt");//Здесь ошибка
close(myfile);
end.
Текст ошибки: «Ошибка: неверное выражение».
Pascal abc, в интернете ничего не нашёл.
Помогите
задан 12 янв 2013 в 12:37
1
Не верное определение типа
var
myfile: text;
Должно быть textfile
ответ дан 12 янв 2013 в 12:40
RsecomuaRsecomua
4,26313 серебряных знаков17 бронзовых знаков
Все, разобрался. Нужны не двойные кавычки, а обычные. Т.е. ‘test1.txt’
ответ дан 12 янв 2013 в 12:42
RoanRoan
3975 серебряных знаков17 бронзовых знаков
user_str = input(‘Введите строку: ‘)
user_words = user_str.split()
result_list = [[], [], [], []]
eng_alphabet = [«A», «B», «C», «D», «E»,
«F», «Z», «H», «I», «K»,
«L», «M», «N», «O», «P»,
«Q», «R», «S», «T», «V»,
«X»]
result_list[0].append(‘Всего слов — ‘ + str(len(user_words)))
long_word = max(user_words, key=len)
result_list[1].append(‘Все четные цифры строки — ‘ + ».join([elem for elem in user_str if int(elem) % 2 == 0]))
result_list[2].append(‘Самое длинное слово — ‘ + long_word)
result_list[3].append(‘Все символы длинного слова — ‘ + ».join([elem for elem in list(long_word) if elem not in eng_alphabet]))
Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Ярик
Репутация: 0
При работе с файлом мне нужно указать путь к файлу с клавиатуры. В моём варианте assign работает только, если в программе не участвует readln(read). Поиском не пользовался, дабы нет времени. Просто очень срочно. Ребят, прошу помощи.
uses crt;
const N=10; M=15;
type massiv=array[1..N,1..M] of integer;
var a: massiv;
i,v,h,o,b,p,N2,M2,j,t,g,k,l: integer;
s: real;
f,f2: text;
str:string;
ch: char;begin {1}
clrscr;writeln ('Введите размер матрицы вида (M*N; gde N-столбцы (максимальный размер 10*15)');
writeln ('Введите количество столбцов');
repeat
read (N2);
until (N2>=3) and (N2<=10); {часть ввода данных}
writeln ('Введите количество строк');
repeat
read (M2);
until (M2>=1) and (M2<=15);
writeln;begin
writeln ('Куда вывести используемые данные? 1-записать в файл 2-вывести на окно ');
ch:=readkey;
if ch='1' then {сама работа с файлом (запись текста в него, с указанием полного пути, вводимого с клавы}
writeln ('Введите путь к файлу');
read (str);
assign (f2,str);
rewrite (f2);
write (f2,'isxodnaya matriza');close (f2);
end;readln;
readln;
end. {1}
я, думаю, для вас это ламерский вопрос..