Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 13.09.2018
Сообщений: 90

Ссылка на объект не указывает на экземпляр объекта

13.09.2018, 12:26. Показов 2894. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хэлп пипл. Че-то не допирает. Да и вообще, не будет каких либо идей или предложений касательно кода?

C#
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
namespace TestAlpha
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] copy = new string[999];
            string word;
            int i;
 
            string Text = File.ReadAllText(@"C:\Users\ROCKS\Desktop\Text1.txt");
            for (i = 0; i < Text.Length; i++)
            {
                copy[i] = Text.ToString();
            }
            Console.WriteLine("Исходник оригинального текста : " + copy[0]);
            Console.WriteLine("Количество символов в строке : " + i);
 
            string[] sent = new string[999];
 
            for (i = 0; i < copy.Length; i++)
            {
                sent[i] = copy[i];
            }
 
            for (i = 0; i < sent.Length; i++)
            {
                sent[i] = sent[i].Replace(",", ""); //Ссылка на объект не указывает на экземпляр объекта
            }
 
 
            //sent = Text.Split(new char[] { ' ' });
 
            for (i = 0; i < sent.Length; i++)
            {
                Console.WriteLine(sent[i]);
                i++;
            }
 
            Console.ReadKey();
        }
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.09.2018, 12:26
Ответы с готовыми решениями:

Ссылка на объект не указывает на экземпляр объекта
каждый раз при компиляции возникает ошибка : Ссылка на объект не указывает на экземпляр объекта. так в чем же ошибка??(( вот кусок...

Ссылка на объект не указывает на экземпляр объекта
всем привет! на днях друг попросил сделать фейк прогу на visual studio, одна получилась все без ошибок работает, а вот остальные вылазиет...

Ссылка на объект не указывает на экземпляр объекта.
Добрый день. При выполнении кода: dynamic zapros_cena = ExecuteCreateObject(baza, &quot;NewObject&quot;, new object { &quot;Запрос&quot;...

41
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
14.09.2018, 12:44
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от V_Monomax Посмотреть сообщение
когда можно ссылаться? Собственно буферный обмен, или строковое получение, по сути под капотом StremReadLine() - все что вы написали, и при этом не надо париться над тем что и где и как и сколько (это я про буферы и прочее), можно использовать 1000 работников с лопатой, а можно использовать один экскаватор, и пока мы с вами скатываемся к спору, что лучше. Но спорить с вами не собираюсь, тут пусть топик стартер решает что ему удобнее.
Вы на пример кода выше посмотрите. Там и ссылаться не на что. И не зачем. Нет никакой аллокации памяти и засорения кучи. Не создаются совершенно ненужные объекты строк, с соответствующим выделением памяти под них. У нас есть бесконечный поток символов. Для принятия решения нам достаточно одного символа. Не нужно конструировать объект строки из набора символов, чтобы проверить наличие в ней знаков препинания.

Переводить документ в массив строк для этой задачи - избыточно. Вы не получите никаких преимуществ ни в чём.

Цитата Сообщение от V_Monomax Посмотреть сообщение
Но спорить с вами не собираюсь, тут пусть топик стартер решает что ему удобнее.
Да не о чем тут спорить. Вы утверждаете, что данные надо завернуть в строки, чтобы с ними работать, а потом отправить снова на посимвольный разбор для сохранения. Я утверждаю, что данные уже в удобном для задачи формате - стрима символов хватает. И это более эффективный вариант. И доказать обратное вы не можете.

Цитата Сообщение от Batch7992 Посмотреть сообщение
Я может быть чего то не понимаю, но у меня в Output создается только первая буква текста.
У меня нормально отработало.

Добавлено через 27 секунд
Цитата Сообщение от Batch7992 Посмотреть сообщение
А как создать проверку в которой много критериев? Например, я хочу проверять текст не только она запятую, но и на другие знаки.
Массив символов, с которыми нужно сравнить каждый читаемый.
2
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
14.09.2018, 14:11
Цитата Сообщение от Batch7992 Посмотреть сообщение
А как создать проверку в которой много критериев? Например, я хочу проверять текст не только она запятую, но и на другие знаки
Вы хотите проверять наличие или сразу их удалять?
0
0 / 0 / 0
Регистрация: 13.09.2018
Сообщений: 90
14.09.2018, 15:40  [ТС]
V_Monomax, Я хочу проверить присутствие массива "запрещенных" символов в файле, и потом очистить все эти символы.

Добавлено через 1 минуту
Usaga, А как потом прогнать этот массив?
0
14.09.2018, 17:12

Не по теме:

Usaga, спорить с диванными экспертами бессмысленно)

0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
14.09.2018, 18:09
Цитата Сообщение от Batch7992 Посмотреть сообщение
А как потом прогнать этот массив?
Кликните здесь для просмотра всего текста

C#
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
using System;
using System.IO;
using System.Linq;
 
namespace Test
{
    class Program
    {
        static char[] prohibitedSymbols = new char[] { '.', '!', 'f','u' };
 
        static void Main()
        {
            using (var fileStream = new FileStream("SomeText.txt", FileMode.Open))
            using (var inputStream = new BinaryReader(fileStream))
            {
                using (var outputStream = new BinaryWriter(new FileStream("Output.txt", FileMode.Create)))
                {
                    while (fileStream.Position < fileStream.Length)
                    {
                        var c = inputStream.ReadChar();
                        if (!prohibitedSymbols.Contains(c))
                            outputStream.Write(c);
                    }
                }
            }
            Console.WriteLine("Done");
            Console.ReadKey();
        }
    }
}


Не по теме:

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

1
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
14.09.2018, 19:03
по ошибке
Цитата Сообщение от Batch7992 Посмотреть сообщение
for (i = 0; i < sent.Length; i++)
{
sent[i] = sent[i].Replace(",", ""); //Ссылка на объект не указывает на экземпляр объекта
}
ошибка в том что вы пытаетесь изменить тот же массив который и читаете
например был массив { 1, 2, 3}
вы удалили 1 но i < sent.Length определена на момент начала цикла и равно 3
он до сих пор считает что там 3 элемента и обращается к нему sent[2]
а его уже не существует поэтому и получается ошибка

Добавлено через 6 минут
вообще советую использовать не for a foreach не мучится
ошибка от этого не исчезнет но пользоваться им удобней
примерно так так этот будит работать потому что пиши в отдельную строку
C#
1
2
3
4
string sent2 = ""
foreach (cahr c in sent)
  if(sent[i] != ',')
    sent2 += sent[i]
Добавлено через 1 минуту
это не рекомендации по написанию этого метода, а описания ошибки.
1
0 / 0 / 0
Регистрация: 13.09.2018
Сообщений: 90
15.09.2018, 18:59  [ТС]
Wolflind, спасибо

Добавлено через 1 минуту
Usaga, спасибо

Добавлено через 12 секунд
V_Monomax, спасибо
0
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
16.09.2018, 10:28
Batch7992, если файл полностью загружать в оперативную память и потом просто вывести на экран слова, то:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    class Program
    {
        static void Main(string[] args)
        {
            string text = File.ReadAllText(@"C:\temp\input.txt");
            var regex = new Regex(@"[^\p{IsCyrillic}]+");
            var strArr = regex.Split(text);
            foreach (var item in strArr)
            {
                Console.WriteLine(item);
            }
 
            Console.ReadKey();
        }
    }
Здесь упрощённый вариант - словом считаем непрерывную последовательность русских букв.
Дефисы в слове будут?
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
16.09.2018, 11:13
amr-now, а без загрузки файла целиком в оперативку и преобразования в массив строк вообще никак не обойтись?
0
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
16.09.2018, 11:52
Usaga, здесь нужно спросить у топик-стартера, сколько терабайт занимает исходный текстовый файл.

Любое решение должно решать свою задачу, желательно укладываясь в некий перечень критериев.
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
16.09.2018, 11:59
amr-now, ТС сказал, что из файла нужно вычистить знаки препинания. Из файла. Т.е. данные уже есть. Откуда попёрли решения в виде выгрузки файла в массив строк - можно только гадать...
0
0 / 0 / 0
Регистрация: 13.09.2018
Сообщений: 90
17.09.2018, 10:14  [ТС]
amr-now, Да, будут

Добавлено через 1 час 4 минуты
Usaga,
System.ArgumentException: "Буфер выходных символов не достаточен для хранения закодированных символов, кодирование 'Unicode (UTF-8)' резерв 'System.Text.DecoderReplacementFallback' .
Имя параметра: chars"

У меня такая ошибка, когда ввожу русские буквы.
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
17.09.2018, 10:18
Batch7992, куда вы вводите?
0
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
17.09.2018, 10:21
Batch7992, а цифры входят в слово?
А будет смесь латинских и русских букв?
А нижнее подчеркивание входит в слово?
Число является словом?
А если в числе десятичная точка, будет ли она считаться знаком препинания?
1
0 / 0 / 0
Регистрация: 13.09.2018
Сообщений: 90
17.09.2018, 10:36  [ТС]
Usaga, В текстовый файл который прогоняется

Добавлено через 2 минуты
amr-now,
1. Нет
2. Нет.
3. Нет.
4. Нет.
5. Нет, и число и точку надо убрать.

Добавлено через 2 минуты
Usaga, Вооо. Я кажется что-то похожее нашел. Алгоритм шинглов. Вот даже прототип сравнения :

http://www.codeisart.ru/blog/p... algorithm/

Насколько такое сложно реализовать в шарпе?
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
17.09.2018, 11:19
Batch7992, всё можно реализовать. Главное в описании алгоритма разобраться. Единственное, что какая связь между озвученным тут требованием вычищать знаки препинания и нечётким поиском?
0
0 / 0 / 0
Регистрация: 13.09.2018
Сообщений: 90
17.09.2018, 11:53  [ТС]
Usaga, Я, по сути, и хотел, сам того не подозревая, написать этот алгоритм шинглов. Я хотел из текстов убрать все лишнее и потом сравнить остатки. Но теперь понял что можно это и на шинглы разбить.
0
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
17.09.2018, 11:56
Batch7992, выдирает из текста последовательности русских букв, возможно содержащих внутри дефисы. Но не начинающиеся и не заканчивающиеся дефисами.
C#
1
2
3
4
5
6
7
8
9
10
11
12
        static void Main(string[] args)
        {
            string text = File.ReadAllText(@"C:\temp\input.txt");
            var regex = new Regex(@"\p{IsCyrillic}+(-p{IsCyrillic}+)*");
            var strArr = regex.Matches(text);
            foreach (var item in strArr)
            {
                Console.WriteLine(item);
            }
 
            Console.ReadKey();
        }
1
0 / 0 / 0
Регистрация: 13.09.2018
Сообщений: 90
17.09.2018, 13:27  [ТС]
Ой, ребят, если еще в этой теме есть кто-то живой, помогите разобрать и реализовать
Python
1
2
3
4
5
6
7
def compaire (source1,source2):
    same = 0
    for i in range(len(source1)):
        if source1[i] in source2:
            same = same + 1
 
    return same*2/float(len(source1) + len(source2))*100
0
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
17.09.2018, 14:30
Batch7992, прошу проверить:
C#
1
2
3
4
5
6
7
8
9
10
        static double Compaire<T>(IList<T> source1, IList<T> source2)
        {
            double same = 0;
            for (int i = 0; i < source1.Count; i++)
            {
                if (source2.Contains(source1[i]))
                    ++same;
            }
            return same * 200.0 / (source1.Count + source2.Count);
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.09.2018, 14:30

Ссылка на объект не указывает на экземпляр объекта
Народ, объясните пожалуйста что делаю не так??? Есть класс (Client), из него нужно поменять пару текстовых полей на основной форме...

Ссылка на объект не указывает на экземпляр объекта
Всем привет. Пишу почтовик. Кода много, и поэтому я взял приложение на стороне, скопировал оттуда код и вставил (ессно, изменив имена...

Ссылка на объект не указывает на экземпляр объекта при ответе от сервера
У меня есть несколько классов, вложенные друг в друга. Происходит запрос на сервер и получаю ответ от сервера в формате json, далее...

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
Здравствуйте. В 59 строке выскакивает исключение NullReferenceException, в чем проблема? using System; using...

Ошибка "Ссылка на объект не указывает на экземпляр объекта"
День добрый. Имеется потребность изобразить структуру, включающую в себя массивы. Делаю я это следующим образом: public struct ant ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru