Ошибка времени выполнения system formatexception входная строка имела неверный формат

inkvizitor1832

3 / 3 / 0

Регистрация: 05.03.2015

Сообщений: 76

1

28.05.2017, 23:22. Показов 992. Ответов 2

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Возникает ошибка

Кликните здесь для просмотра всего текста

Ошибка времени выполнения: System.FormatException: Входная строка имела неверный формат

В данном месте — read(t, L[k]);

Pascal
1
2
3
4
5
6
7
8
9
10
procedure Res(var d:doroga; t:text);
var k: byte;
begin
 for k := 21 to 40 do begin
   read(t, L[k]); 
    if (L[k] > 2000) and (L[k] < 3000) then
      write(L[k-20], ' ');
      end;
  writeln;
  end;

Весь код

Pascal
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
const n = 20;
 
type doroga = array[1..40] of real;
 
var 
f,f1:text;
  d1, d2: doroga; 
L: array [1..40] of real;
 b:integer;
 
procedure Vvod(var d: doroga; o:text);
var i,k: byte;
begin
  for i := 1 to n do begin
   read(o,d[i]);
    writeln('Шифр ', i, ' участка: ',(d[i]));
    end;
   for k := 21 to 40 do begin
   b:=k-20;
    read(o,L[k]); 
     writeln('Протяженность ', b, ' участка: ',(L[k]));
    end;
  end;
 
 
 
 
 
procedure Res(var d:doroga; t:text);
var k: byte;
begin
 for k := 21 to 40 do begin
   read(t, L[k]); 
    if (L[k] > 2000) and (L[k] < 3000) then
      write(L[k-20], ' ');
      end;
  writeln;
  end;
 
 
 
begin 
assign (f,'C:UsersKompDesktopf.txt');
reset(f);
assign (f1,'C:UsersKompDesktopf1.txt');
reset(f1);
  writeln('Первая дорога:');
  Vvod(d1,f);
  writeln('Вторая дорога:');
  Vvod(d2,f1);
  writeln('Первая дорога:');
  Res(d1,f);
  writeln('Вторая дорога:');
  Res(d2,f1);
  close(f);
  close(f1);
end.



0



Эксперт Pascal/Delphi

6806 / 4565 / 4817

Регистрация: 05.06.2014

Сообщений: 22,438

29.05.2017, 08:33

2

inkvizitor1832, файлы текстовые приложите.



0



3 / 3 / 0

Регистрация: 05.03.2015

Сообщений: 76

29.05.2017, 10:40

 [ТС]

3

ZX Spectrum-128, f.txt f1.txt



0



Есть код (Не Delphi), который разбивает слова из строки на перменные:


input.txt

Dima M 182
Katya F 167
Petr M 165
Andrey M 177
Ira F 179

Код pascal:

...
var i:integer; 
s: array [1..n] of string;
position:byte;

Begin
  assign(input,'input.txt'); 
  reset(input);
  for i:=1 to n do
  begin
    readln(input,s[i]);

    //Строка "Dima M 182"

    //Достать имя из строки
    position := Pos(' ', s[i]); //Позиция первого пробела
    person[i].name:=copy(s[i], 0, position-1); //Вставить слово до первого пробела в переменную
    delete(s[i], 1, position); //Удалить первое слово и первый пробел

    //Осталось "M 182"

    //Достать пол из строки
    position := Pos(' ', s[i]); //Позиция второго пробела 
    person[i].sex:=copy(s[i], 0, position-1); //Вставить слово между первым и вторым пробелами в переменную
    delete(s[i], 1, position); //Удалить второе слово и второй пробел

    //Осталось "182"

    //Достать рост из строки
    person[i].height:=StrToInt(s[i]);
    writeln(person[i].height);
  end;
end.

Ожидается, что код:

person[i].height:=StrToInt(s[i]);

Переведет «s[i]» из строки в число, чтобы с «person[i].height» можно было проводить вычисления, но вместо этого компилятор пишет:

Ошибка времени выполнения: System.FormatException: Входная строка имела неверный формат.

Выдаёт такую ошибку:
Необработанное исключение:

System.FormatException: Входная строка имела неверный формат.
в System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
в System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
в System.Convert.ToInt32(String value)
в Program1.Program.Main() в C:CSAIO4DВК01CH01Program1Program1Program.cs:строка 42

Вот код:

static void Main()
{
Console.WriteLine("Введите первое число.");
int One = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Введите второе число.");
int Two = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Введите Третье число.");
int Three = Convert.ToInt32(Console.ReadLine());

if (One > Two)
{
if(One > Three)
{
Console.WriteLine(One);
}
else
{
Console.WriteLine(Three);
}
}
else if (Two > Three)
{
Console.WriteLine(Two);
}
else
{
Console.WriteLine(Three);
}
int Number = Convert.ToInt32(Console.ReadLine());
Number /= 2;
switch (Number)
{
case 0:
Console.WriteLine("Чётное");
break;
case 1:
Console.WriteLine("Не чётное");
break;
}

TheMaker

0 / 0 / 0

Регистрация: 11.05.2020

Сообщений: 4

1

Ошибка времени выполнения: Входная строка имела неверный формат

11.05.2020, 20:24. Показов 2987. Ответов 7

Метки pascal abc (Все метки)


Добрый вечер. Писал сегодня программу по условию задачи: «Вывести на печать фамилии тех учеников, у которых есть хотя бы одна тройка, т. е. не являющихся ни отличниками, ни хорошистами.» Вот что получилось:

Pascal
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
Program P1;
Type journal = record
   Fam: string[18];
   Rus: 2..5;
   Math: 2..5;
   Eng: 2..5
end;
Var list: array[1..8] of journal;
    i:integer; F1, F2: text;
Begin
  
  Assign(F1, 'C:10_М.txt');
  Assign(F2, 'C:SoFar.txt');
  Reset(F1);
  Rewrite(F2);
  ReadLn(F1); ReadLn(F1);
  
   For i:=1 to 8 do 
     ReadLn(F1, list[i].Fam, list[i].Rus, list[i].Math, list[i].Eng);
   For i:=1 to 8 do
     If (list[i].Rus=3) or (list[i].Math=3) or (list[i].Eng=3)then 
     begin
       WriteLn(list[i].Fam);
       WriteLn(F2, list[i].Fam)
     end;
  Close(F1); Close(F2);
end.

При этом программа выдает: «1.pas(19) : Ошибка времени выполнения: Входная строка имела неверный формат.»
Файл с таблицей прилагаю. Заранее премного благодарен.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Почетный модератор

64270 / 47569 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

11.05.2020, 20:39

2

Цитата
Сообщение от TheMaker
Посмотреть сообщение

Файл с таблицей прилагаю

Спасибо и на этом.

0

Супер-модератор

6108 / 2847 / 1299

Регистрация: 04.03.2013

Сообщений: 5,738

Записей в блоге: 1

11.05.2020, 20:39

3

TheMaker, в файле C:10_М.txt обеспечьте, чтобы было 18 символов под фамилию + 19ый символ пробел:

Код

Иванов             3 4 5
Петров             3 3 3
Сидоров            3 4 5

Добавлено через 34 секунды
Так нельзя:

Код

Иванов             3 4 5
Петров             3 3 3
Сидоров            3 4 5

0

0 / 0 / 0

Регистрация: 11.05.2020

Сообщений: 4

11.05.2020, 21:18

 [ТС]

4

ildwine, так там предусмотрен абзац.
Т.е.

Иванов
3. 4. 5
Петров
2. 4. 3

Или есть смысл писать все 1 строкой?

0

ildwine

Супер-модератор

6108 / 2847 / 1299

Регистрация: 04.03.2013

Сообщений: 5,738

Записей в блоге: 1

11.05.2020, 21:26

5

Pascal
1
ReadLn(F1, list[i].Fam, list[i].Rus, list[i].Math, list[i].Eng);

Эта строка предусматривает, что данные находятся в одной строке через пробел.

0

0 / 0 / 0

Регистрация: 11.05.2020

Сообщений: 4

12.05.2020, 10:51

 [ТС]

6

ildwine, сделал так, как вы сказали, однако проблема не исчезла. Я пробовал и расстояние между цифрами уменьшить до 1 пробела — все одно и тоже.

0

ildwine

Супер-модератор

6108 / 2847 / 1299

Регистрация: 04.03.2013

Сообщений: 5,738

Записей в блоге: 1

12.05.2020, 13:03

7

Лучший ответ Сообщение было отмечено TheMaker как решение

Решение

У меня заработало, после того как я сформировал правильный файл.
И ещё нужно убрать строку:

Pascal
1
ReadLn(F1); ReadLn(F1);

10_М.txt

Pascal
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
Program P1;
Type journal = record
   Fam: string[18];
   Rus: 2..5;
   Math: 2..5;
   Eng: 2..5
end;
Var list: array[1..8] of journal;
    i:integer; F1, F2: text;
Begin
  
  Assign(F1, 'D:10_М.txt');
  Assign(F2, 'D:SoFar.txt');
  Reset(F1);
  Rewrite(F2);
  
   For i:=1 to 8 do 
     ReadLn(F1, list[i].Fam, list[i].Rus, list[i].Math, list[i].Eng);
   For i:=1 to 8 do
     If (list[i].Rus=3) or (list[i].Math=3) or (list[i].Eng=3)then 
     begin
       WriteLn(list[i].Fam);
       WriteLn(F2, list[i].Fam)
     end;
  Close(F1); Close(F2);
end.

1

0 / 0 / 0

Регистрация: 11.05.2020

Сообщений: 4

14.05.2020, 17:09

 [ТС]

8

ildwine, спасибо за уделенное время.

0

Формулировка задачи:

Вот код:

Объявление переменных:

Ввод

Выдает ошибку в строке

Как исправить?

Вводил вот так:

Код к задаче: «Некорректно работает read — Ошибка времени выполнения: Входная строка имела неверный формат»

textual

Листинг программы

people[i].fio:=tospace();

Полезно ли:

8   голосов , оценка 4.000 из 5

Похожие ответы

  1. Вывести на экран все русские согласные буквы строки в алфавитном порядке.
  2. Найти номер первого символа строки, нарушающего алфавитный порядок
  3. Упорядочить элементы последней строки матрицы по убыванию
  4. Ввести строку. Удалить часть символьной строки, заключенной между запятыми.
  5. Составить процедуру Stars, которая по данному N выводит на экран строку из N символов *
  6. Работа со строками, нахождение слов в txt
  7. Вывод сообщения если строка пустая после выполнения алгоритма
  8. Напишите программу, которая находит все различные цифры в символьной строке
  9. Вывести пять строк разной длины из разных цифр
  10. Удалить из массива строку и столбец, на пересечении которых находится минимальный элемент
  11. Выдает ошибку
  • Remove From My Forums

none

Ошибка Входная строка имела неверный формат.

  • Вопрос

  • Добрый вечер.

    WPF C#.

    Всё работало. Переустановил Windows, Ту же самую поставил. Та же VS 2015 всё то же. Но перестала работать программа.

    Пишет ошибку

    Необработанное исключение типа "System.FormatException" в mscorlib.dll
    Входная строка имела неверный формат.
    

    Как решить это?

    Ругается на эту строчку

    TYan = Convert.ToDouble(_TYan);
                if (!string.IsNullOrEmpty(_TYan))
                {
    
                    double TYan;
                    TYan = Convert.ToDouble(_TYan);
    

    Ещё — раньше не было Azure SDK сейчас добавил ещё Azure SDK — из-за неё что-ли?

Ответы

  • Скорее всего строка неверная. Может там точка вместо запятой, а может наоборот. Требуемый формат зависит от текущей культуры, видимо она подменялась после переустановки ОС.

    Так что проверяйте строку и культуру.


    This posting is provided «AS IS» with no warranties, and confers no rights.

    • Помечено в качестве ответа

      1 марта 2016 г. 17:20

Урок 9: Обработка исключений.

Основная цель урока.

1.Изучить основные принципы перехвата и обработки исключений.

2.Познакомиться с некоторыми операции работы с файловой системой.

.

Краткая справка.

Обработка исключений.

Исключительная ситуация (или исключение) — это ошибка, которая возникает во время выполнения программы. В C# реализован механизм, позволяющий перехватывать такие исключительные ситуации. Рассмотрим пример – программа запрашивает у пользователя ввод некоторого числа из консоли, но не факт, что пользователь введёт именно число и следующий код может привести к ошибке(исключению).

Console.WriteLine(«Введите число»);

int n = Convert.ToInt32(Console.ReadLine());

Если пользователь введёт нечисловое значение, исключение в вышеприведённом коде сгенерирует метод ToInt32. Например, пользователь вводит консоли строку «56 ф», эта строка не может быть преобразована в число с помощью метода ToInt32 и будет выброшено исключение System.FormatException. (Exception –

с англ. « исключение»).

Чтобы узнать какие исключения может генерировать тот или иной метод,

достаточно просто подвести курсор к соответствующему методу.

Видно, что метод ToInt32 может генерировать 2 разных исключения –

System.FormatException и System.OverflowException.

Исключение System.FormatException выбрасывается, когда была передана строка в неверном формате, например: “сто”, “50ъ”, “+-200” или “абсде”.

Т.е. код Convert.ToInt32(“двести”) выбросит исключение System.FormatException.

Исключение System.OverflowException выбрасывается, когда было передано слишком большое число (Overflow – с англ. « переполнение»).

Т.е. код Convert.ToInt32(“648476438746”) выбросит исключение System.

OverflowException, т.к. строка несмотря на то, что строка “648476438746“ имеет числовой формат – такое больше число не может быть представлено типом int.

Для того чтобы отловить исключение соответствующего типа и предотвратить появление ошибки в программе нужно воспользоваться конструкцией try..catch.(try – c англ. « пробовать», catch – с англ. « ловить»).

Console.WriteLine(«Введите число»); try

{

int n = Convert.ToInt32(Console.ReadLine()); }catch(FormatException ex)

{

Console.WriteLine(«Неверный формат числа!»);

}

Вслучае ввода нечислового значения при выполнении вышеприведённого кода

впрограмме не возникнет ошибки, а будет произведён переход в блок catch. Чтобы отлавливать исключения других типов, нужно добавить ещё один блок catch.

Console.WriteLine(«Введите число»); try

{

int n = Convert.ToInt32(Console.ReadLine()); }catch(FormatException ex)

{

Console.WriteLine(«Неверный формат числа!»); }catch(OverflowException ex)

{

Console.WriteLine(«Введённое число не умещается в диапазоне»); Console.WriteLine(«от {0} до {1}»,int.MinValue,int.MaxValue);

}

Если необходимо отловить все исключения, можно воспользоваться базовым

классом для всех исключений – классом Exception. В этом случае отлавливаются

исключения всех видов, однако нельзя узнать из-за чего именно возникло

исключение.

Console.WriteLine(«Введите число»); try

{

int n = Convert.ToInt32(Console.ReadLine()); }catch(Exception ex)

{

Console.WriteLine(«Ошибка!»); Console.WriteLine(«Информация об ошибке: {0}»,ex.Message);

}

Выбрасывание исключений.

Общий синтаксис для выбрасывания (т.е. генерации) исключения выглядит

следующим образом:

Throw НовыйЭкземпярКлассаException;

Пример:

Console.WriteLine(«Введите чётное число»); try

{

int n = Convert.ToInt32(Console.ReadLine());

if (n % 2 != 0) throw new Exception(«Вы ввели НЕЧЁТНОЕ число!»); Console.WriteLine(«Спасибо!»);

}

catch (Exception ex)

{

Console.WriteLine(«Ошибка: {0}», ex.Message);

}

Результаты работы программы:

Пользователь ввёл

Результат

3,,5

Ошибка: Входная строка имела неверный формат

35

Ошибка: Вы ввели НЕЧЁТНОЕ число!

36

Спасибо!

Учебное задание 2.1.

Создать программу упрощающую процесс очистки жесткого диска от « мусора» –

тяжелых и неиспользуемых файлов. Программа должна уметь сканировать определённую директорию (или диск) на наличие больших файлов (более 300Мб)

последнее обращение к которым было более 90 дней назад. Программа должна игнорировать системные файлы.

Технология выполнения учебного задания 2.1.

Шаг 1. Создайте новый проект консольного приложения, назовите его Lab23.

Шаг 2. .Для того чтобы использовать классы Directory, File, Path и другие без явного указания принадлежности к пространству имён System.IO укажем, что он будет использоваться по умолчанию (листинг 1).

using System;

using System.Collections.Generic; using System.Text;

using System.IO; namespace Lab23

{

class Program

Листинг 1

Шаг 3. С помощью метода Directory.GetFiles можно получить список всех файлов в заданной директории. Получим список всех файлов на диске “C”. В

дальнейшем можно усовершенствовать программу так, чтобы пользователь сам мог указывать директорию для сканирования.

Для определения размера файла будем использовать класс FileInfo (см листин

2).

static void Main(string[] args)

{

string[] files;

//получаем список файлов на диске C files = Directory.GetFiles(@»C:»);

//Перебираем все файлы…

for (int i = 0; i < files.Length; i++)

{

//Для определения размера файла и других его характеристик //используем класс FileInfo

FileInfo info = new FileInfo(files[i]); //если размер файла больше 300 МБ…

if (info.Length > 300 * 1024 * 1024)

{

Console.WriteLine(«{0} (размер {1} мегабайт)», files[i], info.Length/1024/1024);

}

}

Console.ReadKey();

}

Листинг 2

Шаг 4. Запустите программу, нажав клавишу F5, убедитесь, что программа

работает.

Шаг 5. Программа выводит список всех файлов на диске C, размер которых превышает 300Мб, программа перечисляет все файлы в корне диска (даже скрытые и системные). Системные файлы удалять небезопасно, даже если к ним не было обращения в течении 90 дней – исключим эти файлы из результатов поиска.

Для этого воспользуемся свойством Attributes класса FileInfo. Свойство Attributes

имеет тип перечисления FileAttributes, само перечисление содержит следующие элементы (атрибуты).

public enum FileAttributes

{

ReadOnly = 1,

Hidden = 2,

System = 4, Directory = 16, Archive = 32, Device = 64, Normal = 128, Temporary = 256, SparseFile = 512,

ReparsePoint = 1024, Compressed = 2048, Offline = 4096, NotContentIndexed = 8192, Encrypted = 16384,

}

Обратите внимание, что каждому элементу в перечислении соответствуют не числа по порядку, а степени двойки (21, 22, 23, 24 и.т.д.). Это сделано для того, чтобы файл мог содержать не один, а несколько атрибутов. Если представить все эти числа в двоичной системе, получим:

ReadOnly

00000000000000000000000000000001

1

Hidden

00000000000000000000000000000010

2

System

00000000000000000000000000000100

4

Directory

00000000000000000000000000001000

8

Archive

00000000000000000000000000010000

16

Если файл имеет несколько атрибутов, например: архивный + только для чтения

+ скрытый, мы можем объединить каждый из этих атрибутов с помощью поразрядного ИЛИ.

1 ИЛИ 2 ИЛИ 16 = 19

В двоичной системе это будет выглядеть следующим образом:

00000000000000000000000000010011

Т.е. в двоичном представлении у числа 19 установлены только те биты, которые отвечают за соответствующие атрибуты.

Чтобы узнать, что у файла установлен конкретный атрибут можно воспользоваться следующим приёмом:

FileInfo info = new FileInfo(@»C:1.txt»);

if ((info.Attributes & FileAttributes.System) != 0)

{

Console.WriteLine(«У файла установлен атрибут Системный»);

}

Чтобы узнать дату последнего обращения к файлу нужно воспользоваться свойством LastAccessTime класса FileInfo.

Добавим функционал игнорирующий системные файлы и учитывающий файлы последнее обращение к которым было более 90 дней назад (листинг 3).

for (int i = 0; i < files.Length; i++)

{

//Для определения размера файла и других его характеристик //используем класс FileInfo

FileInfo info = new FileInfo(files[i]);

//если файл не является системным И //с момента последнего обращения к файлу прошло более 90 дней И //размер файла более 300 мегабайт

if (((info.Attributes & FileAttributes.System) == 0) && ((DateTime.Nowinfo.LastAccessTime).Days>90) && (info.Length > 300 * 1024 * 1024))

{

//Выводи информацию о файле в консоль

string name = Path.GetFileName(files[i]); Console.WriteLine(«{0} (размер {1} мегабайт)», name,

info.Length/1024/1024);

}

}

Листинг 3

Шаг 6. На данный момент программа перечисляет все файлы только в корне диска C, без учёта вложенных директорий. Для того, чтобы программа перечисляла все файлы с учётом вложенных поддиректорий удобно будет воспользоваться механизмом рекурсивных вызовов.

Идея в следующем, создаётся некоторая функция (например, EnumDir)

принимающая 1 аргумент – директорию, которую надо просканировать.

Внутри функции прописан следующий функционал:

1.Получаем список файлов в указанной директории (заданной аргументом)

2.Определяем размер файла, дату последнего обращения, принимаем решение выводить файл в консоль или нет.

3.Получаем список всех директорий в указанной директории (заданной аргументом)

4.В цикле для каждой директории из списка вызываем функцию EnumDir

ВС# функция может вызвать сама себя. Этот процесс называется рекурсией, а

функция, который вызывает себя, называют рекурсивной.

Вобщем случае рекурсия — это процесс определения чего-либо с использованием самого себя.

Вынесем реализованный функционал в отдельный метод, назовём его

EnumDir(см листинг 4).

static void Main(string[] args)

{

//вызываем функцию EnumDir EnumDir(@»C:»); Console.ReadKey();

}

static void EnumDir(string dir) {//начало функции EnumDir

string[] files;

//получаем список файлов для директории dir files = Directory.GetFiles(dir); //Перебираем все файлы…

for (int i = 0; i < files.Length; i++)

{

//Для определения размера файла и других его характеристик //используем класс FileInfo

FileInfo info = new FileInfo(files[i]); //если файл не является системным И

//с момента последнего обращения к файлу прошло более 90 дней И

//размер файла более 300 мегабайт

if (((info.Attributes & FileAttributes.System) == 0) && ((DateTime.Now — info.LastAccessTime).Days > 90) && (info.Length > 300 * 1024 * 1024))

{

//Выводи информацию о файле в консоль string name = Path.GetFileName(files[i]);

Console.WriteLine(«{0} (размер {1} мегабайт)», name, info.Length / 1024 / 1024);

}

}

//получаем список поддиректорий для директории dir string[] dirs = Directory.GetDirectories(dir);

//для каждой поддиректории вызываем функцию EnumDir (рекурсия) for (int i = 0; i < dirs.Length; i++)

{

EnumDir(dirs[i]);

}

}//конец функции EnumDir

Листинг 4

Шаг 7. Запустите программу, нажав клавишу F5. При запуске программы с большой долей вероятности будет выдано исключение:

System.UnauthorizedAccessException « Отказано в доступе по пути «C:XXXXXX»

На диске существуют директории для которых у пользователя нет прав на просмотр содержимого, это порождает такое исключение. Чтобы избежать этого можно воспользоваться конструкцией try..catch (см краткую справку). Код реализующий данный функционал приведён в листинге 5.

static void EnumDir(string dir) {//начало функции EnumDir

string[] files;

//пытаемся получить список файлов для директории dir try

{

files = Directory.GetFiles(dir); }catch(Exception e)

{

//если возникло исключение пишем информацию об ошибке Console.WriteLine(«Невозможно получить список файлов из {0}»,

dir); //и выходим из функции return;

}

//Перебираем все файлы…

for (int i = 0; i < files.Length; i++)

Листинг 5

Шаг 8. Запустите программу, нажав клавишу F5. Убедитесь, что программа

работает.

Контрольные вопросы.

1.Каким образом можно скопировать файл из одной директории в другую ?

2.Каким образом можно проверить, что файл с заданным именем существует на диске?

3.Каким образом можно получить список файлов для заданной директории ?

4.Что такое исключительная ситуация ?

5.Каким образом можно обрабатывать исключительные ситуации ?

6.Что такое рекурсия ?

Самостоятельное задание 2.1.

Напишите программу, которая сканирует некоторую папку (задаётся

пользователем) с учётом поддиректорий, все хранящиеся в ней файлы сортируются

по следующему принципу:

1.Все видеофайлы помещаются в папку Видео (видеофайлами считать файлы имеющие расширение avi, wmv, mkv, mp4)

2.Все аудиофайлы помещаются в папку Аудио (аудиофайлами считать файлы имеющие расширение wav, mp3, mid, wma, flac)

3.Все графические файлы помещаются в папку Изображения (графическими

файлами считать файлы расширение jpg, jpeg, png, gif, bmp)

Директории Видео, Аудио и Изображения должны создаваться в папке, указанной пользователем для сканирования. Для создания директории использовать метод

Directory.CreateDirectory.

Для определения расширения файла воспользоваться методом Path.GetExtension.

Для перемещения файлов используется метод File.Move.

Соседние файлы в папке Методичка (1 сем)

  • #
  • #
  • #
  • #
  • #
  • #
  • Remove From My Forums

locked

Error- System.FormatException: Input string was not in a correct format.

  • Question

  • User-1623038704 posted

    HI,

    I am getting this runtime error — System.FormatException: Input string was not in a correct format.
    on this line of code —

    DataTable
    dtsubfunction =
    this.GetSubFunctionNames(Convert.ToInt32(ddlfunction_name.SelectedItem.Text));

    Cuold someone pls tell the reason for this ?

    Thanks.

Answers

  • User1814019480 posted

           ddlfunction_name.DataSource = dtFunction;
                    ddlfunction_name.DataTextField  =  "FUNCTION_NAME";
                    ddlfunction_name.DataValueField = "FUNCTION_NAME";
                    ddlfunction_name.DataBind();
    

    Hi,

    Thanks for posting!

    I found your code «ddlfunction_name.DataValueField = «FUNCTION_NAME»» is an string type,it  is not an int type,I think  this is your problems!

    You can change «ddlfunction_name.DataValueField = «FUNCTION_NAME»; «to «ddlfunction_name.DataValueField = «Function_ID»».

    And then you fllow above solution to modify,I think it works!And I suggest you can use debug to show your debug data,and Judge the debug data is or is not correction!

    Hope this helps!

    • Marked as answer by

      Thursday, October 7, 2021 12:00 AM

  • Remove From My Forums

locked

Error- System.FormatException: Input string was not in a correct format.

  • Question

  • User-1623038704 posted

    HI,

    I am getting this runtime error — System.FormatException: Input string was not in a correct format.
    on this line of code —

    DataTable
    dtsubfunction =
    this.GetSubFunctionNames(Convert.ToInt32(ddlfunction_name.SelectedItem.Text));

    Cuold someone pls tell the reason for this ?

    Thanks.

Answers

  • User1814019480 posted

           ddlfunction_name.DataSource = dtFunction;
                    ddlfunction_name.DataTextField  =  "FUNCTION_NAME";
                    ddlfunction_name.DataValueField = "FUNCTION_NAME";
                    ddlfunction_name.DataBind();
    

    Hi,

    Thanks for posting!

    I found your code «ddlfunction_name.DataValueField = «FUNCTION_NAME»» is an string type,it  is not an int type,I think  this is your problems!

    You can change «ddlfunction_name.DataValueField = «FUNCTION_NAME»; «to «ddlfunction_name.DataValueField = «Function_ID»».

    And then you fllow above solution to modify,I think it works!And I suggest you can use debug to show your debug data,and Judge the debug data is or is not correction!

    Hope this helps!

    • Marked as answer by

      Thursday, October 7, 2021 12:00 AM

Узнай цену своей работы

Формулировка задачи:

Вот код:

Объявление переменных:

Ввод

Выдает ошибку в строке

Как исправить?

Вводил вот так:

Код к задаче: «Некорректно работает read — Ошибка времени выполнения: Входная строка имела неверный формат»

textual

Листинг программы

people[i].fio:=tospace();

Полезно ли:

8   голосов , оценка 4.000 из 5

Похожие ответы

  1. Вывести на экран все русские согласные буквы строки в алфавитном порядке.
  2. Найти номер первого символа строки, нарушающего алфавитный порядок
  3. Упорядочить элементы последней строки матрицы по убыванию
  4. Ввести строку. Удалить часть символьной строки, заключенной между запятыми.
  5. Составить процедуру Stars, которая по данному N выводит на экран строку из N символов *
  6. Работа со строками, нахождение слов в txt
  7. Вывод сообщения если строка пустая после выполнения алгоритма
  8. Напишите программу, которая находит все различные цифры в символьной строке
  9. Вывести пять строк разной длины из разных цифр
  10. Удалить из массива строку и столбец, на пересечении которых находится минимальный элемент
  11. Выдает ошибку

  • Ошибка времени выполнения input string was not in a correct format
  • Ошибка времени выполнения database error occurred
  • Ошибка времени выполнения basic файл не найден
  • Ошибка времени выполнения basic свойство или метод не найдены text
  • Ошибка времени выполнения basic подпрограмма или функция не определена