C# свой код - не дает сохранить проект

filmcool

Client
Регистрация
04.12.2020
Сообщения
89
Благодарностей
10
Баллы
8
Вообщем кубик со своим кодом с таким содержанием не дает сохранять проект не как . Почему ?


суть в чем - как почистить переменную от всякого мусора ? оставив только инглыш буквы ?


var text = project.Variables["Name"].Value;
text = text.Replace("база", "_")

.Replace("baza", "_")
.Replace("'", "_")
.Replace("’", "")
.Replace("[", "")
.Replace("]", "")
.Replace("/", "")
.Replace(" – ", "-")
.Replace("…", "")
.Replace("~", "")
.Replace("|", "")
.Replace("!", "")
.Replace("+", "")
.Replace("—", "-")
.Replace("á", "a")
.Replace("â", "a")
.Replace("ñ", "n")
.Replace("ó", "o")
.Replace("ô", "o")
.Replace("ö", "o")
.Replace("ç", "c")
.Replace("í", "i")
.Replace("î", "i")
.Replace("ï", "i")
.Replace("à", "a")
.Replace("é", "e")
.Replace("è", "e")
.Replace("ê", "e")
.Replace("Ñ", "n")
.Replace("û", "u")
.Replace("ù", "u")
.Replace("_.", "_.")
.Replace("#", "")
.Replace(";", "")
.Replace("_-_", "_")
.Replace("”", "")
.Replace("•", "-")
.Replace("™", "")
.Replace("´", "")
.Replace("¡¡_", "")
.Replace("ü", "u")
.Replace("ß", "")
.Replace("¡_", "")
.Replace("ä", "a")
.Replace("ö", "o")
.Replace("¡¡¡", "")
.Replace("ü", "U")
.Replace("ß", "")
.Replace("¡", "")
.Replace("Ö", "O")
.Replace("·", "")
.Replace("", "")
.Replace("❤", "")
.Replace("❤", "")
.Replace("❤", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("❤�", "")
.Replace("❤❤", "")
.Replace("❤", "")
.Replace("❌", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("❤", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace(" ", "")
.Replace("", "")
.Replace("", "")
.Replace("⚠", "")
.Replace("", "")
.Replace("", "")
.Replace("❤", "")
.Replace("❤⚠", "")
.Replace("", "")
.Replace(" ", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace(" ", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("⚡", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("♥", "")
.Replace("", "")
.Replace("", "")
.Replace("⚠", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("", "")
.Replace("¿", "")
.Replace("ú", "u")
.Replace("‘", "")
.Replace("ã", "a")
.Replace("100%", "_")
.Replace("?", "")
.Replace(":", "-")
.Replace("sluts", "_");


// .Replace("", "")
project.Variables["Name"].Value = text;
 

Вложения

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 234
Благодарностей
804
Баллы
113
Жестко. Мб регулярку?
А не, тут регурка видимо не подойдет
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
547
Баллы
93
Лучше создай коллекцию, через [] или список, и перебирай в цикле по всей коллекции.
 

bigloafer

Client
Регистрация
23.07.2020
Сообщения
241
Благодарностей
75
Баллы
28
Лучше создай коллекцию, через [] или список, и перебирай в цикле по всей коллекции.
Долго перебирать будет.

Это только для латинских символов в нижнем регистре, таблица юникода для того чтобы создать условия другие (например в верхнем регистре) ...
C#:
using System;

class Program {
    static void Main(string[] args) {
      string str = "abcабс";
        foreach(char ch in str) {
          if( (int)ch >= 97 && (int)ch <= 122 ) {
            Console.Write(ch + " - латинский символ" + Environment.NewLine);
          } else {
            Console.Write(ch + " - НЕ латинский символ" + Environment.NewLine);
          }
        }
    }
}
 

filmcool

Client
Регистрация
04.12.2020
Сообщения
89
Благодарностей
10
Баллы
8
bigloafer что именно будет делать ваш код ? он очистит переменную от лишних сиволов не латинских ? где и куда мне прописывать имя переменной в вашем коде ?
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 761
Благодарностей
2 401
Баллы
113
У меня без проблем код сохранился в шаблоне.
А здесь на форуме - может искажать естественно.
Но, все же лучше наверно эти данные брать с текстового файла/списка.
C#:
string text = project.Variables["Name"].Value;
List<string[]> list = new List<string[]>();
list.Add(new[]{"baza", "_"});
list.Add(new[]{"'", "_"});
list.Add(new[]{"’", ""});
list.Add(new[]{"[", ""});
list.Add(new[]{"]", ""});
list.Add(new[]{"/", ""});
list.Add(new[]{" – ", "-"});
list.Add(new[]{"…", ""});
list.Add(new[]{"~", ""});
list.Add(new[]{"|", ""});
list.Add(new[]{"!", ""});
list.Add(new[]{"+", ""});
list.Add(new[]{"—", "-"});
list.Add(new[]{"á", "a"});
list.Add(new[]{"â", "a"});
list.Add(new[]{"ñ", "n"});
list.Add(new[]{"ó", "o"});
list.Add(new[]{"ô", "o"});
list.Add(new[]{"ö", "o"});
list.Add(new[]{"ç", "c"});
list.Add(new[]{"í", "i"});
list.Add(new[]{"î", "i"});
list.Add(new[]{"ï", "i"});
list.Add(new[]{"à", "a"});
list.Add(new[]{"é", "e"});
list.Add(new[]{"è", "e"});
list.Add(new[]{"ê", "e"});
list.Add(new[]{"Ñ", "n"});
list.Add(new[]{"û", "u"});
list.Add(new[]{"ù", "u"});
list.Add(new[]{"_.", "_."});
list.Add(new[]{"#", ""});
list.Add(new[]{";", ""});
list.Add(new[]{"_-_", "_"});
list.Add(new[]{"”", ""});
list.Add(new[]{"•", "-"});
list.Add(new[]{"™", ""});
list.Add(new[]{"´", ""});
list.Add(new[]{"¡¡_", ""});
list.Add(new[]{"ü", "u"});
list.Add(new[]{"ß", ""});
list.Add(new[]{"¡_", ""});
list.Add(new[]{"ä", "a"});
list.Add(new[]{"ö", "o"});
list.Add(new[]{"¡¡¡", ""});
list.Add(new[]{"ü", "U"});
list.Add(new[]{"ß", ""});
list.Add(new[]{"¡", ""});
list.Add(new[]{"Ö", "O"});
list.Add(new[]{"·", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"❤", ""});
list.Add(new[]{"❤", ""});
list.Add(new[]{"❤", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"❤�", ""});
list.Add(new[]{"❤❤", ""});
list.Add(new[]{"❤", ""});
list.Add(new[]{"❌", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"❤", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{" ", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"⚠", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"❤", ""});
list.Add(new[]{"❤⚠", ""});
list.Add(new[]{"", ""});
list.Add(new[]{" ", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{" ", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"⚡", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"♥", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"⚠", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"", ""});
list.Add(new[]{"¿", ""});
list.Add(new[]{"ú", "u"});
list.Add(new[]{"‘", ""});
list.Add(new[]{"ã", "a"});
list.Add(new[]{"100%", "_"});
list.Add(new[]{"?", ""});
list.Add(new[]{":", "-"});
list.Add(new[]{"sluts", "_"});

list.ForEach(x=> text.Replace(x[0],x[1]));
project.Variables["Name"].Value = text;
93388
 

bigloafer

Client
Регистрация
23.07.2020
Сообщения
241
Благодарностей
75
Баллы
28
что именно будет делать ваш код ?
Я просто предоставил решение, как по средствам неявного преобразования символа в число (на основании таблицы юникода) определить является ли символ латинским (в нижнем регистре).
Т.е. подкинул идею, как сделать короче, без сбора коллекции.
он очистит переменную от лишних символов не латинских ?
Скрипт не чистит, он определяет является ли символ латинским в нижнем регистре или не является. После чего в управлявшей конструкции if else можно сделать новую строку или новую коллекцию - например оставив только латинские символы.
где и куда мне прописывать имя переменной в вашем коде ?
Как видно из кода, переменная str разбирается по символам, потому что любая строка - это коллекция букв, по ним и сделан перебор с проверкой.

Это код для консольного приложения, для ZP не подойдет, так как Console.Write - не поддерживается в ZP.
C#:
string str = "en ру EN РУ [ ] / ";
string res = "";
foreach (char ch in str) {
    if (((int)ch >= 97 && (int)ch <= 122) | ((int)ch >= 65 && (int)ch <= 90)) {
        res += ch;
        Console.Write(ch + " - латинский символ" + Environment.NewLine);
    } else {
        Console.Write(ch + " - НЕ латинский символ" + Environment.NewLine);
    }
}
Console.Write("=>>>> Итоговая строка:" + res + Environment.NewLine);
Вставь в кубик C# посмотри работает, скрипт отсекёт, все кроме латинских букв в ВЕРХНЕМ и нижнем регистре.
C#:
string str = "en ру EN РУ [ ] / ";    //    Строка которую обрабатываем
string res = "";                    //    Итоговая строка
foreach (char ch in str) {
    if (((int)ch >= 97 && (int)ch <= 122) | ((int)ch >= 65 && (int)ch <= 90)) {
        res += ch;
    }
}
project.SendInfoToLog("итоговая строка: " + res);
 

filmcool

Client
Регистрация
04.12.2020
Сообщения
89
Благодарностей
10
Баллы
8
ну хз я пробовал на 3 компах проект тупо не сохранялся. ( а ну вы его изменили ))) вы попробуйте сохранить в том виде как я выложил ).

ладно

если наоборот - КАК оставить в переменной ЗАДАННЫЕ символы а все остальное удалить ?

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

bigloafer

Client
Регистрация
23.07.2020
Сообщения
241
Благодарностей
75
Баллы
28
ну хз я пробовал на 3 компах проект тупо не сохранялся. ( а ну вы его изменили ))) вы попробуйте сохранить в том виде как я выложил ).

ладно

если наоборот - КАК оставить в переменной ЗАДАННЫЕ символы а все остальное удалить ?

мне проще вбить алфавит чем тысячи смайликов , китайских иероглифов и т.д
Все работает
res.png
 

filmcool

Client
Регистрация
04.12.2020
Сообщения
89
Благодарностей
10
Баллы
8
"Это код для консольного приложения, для ZP не подойдет, так как Console.Write - не поддерживается в ZP. "

спасибо - не чего не понял но очень интересно ))))

надо то что работает в ZP - а идей и я могу накидать только как их написать что бы ZP понимала .

может кто то конкретный пример написать ? как в переменой "Name" убрать мусор оставив латиницу и пару спец символов которые нужны ?
 

filmcool

Client
Регистрация
04.12.2020
Сообщения
89
Благодарностей
10
Баллы
8
где в вашем коде переменная я не пойму ? куда ее вписывать ?
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 761
Благодарностей
2 401
Баллы
113
как в переменой "Name" убрать мусор оставив латиницу и пару спец символов которые нужны ?
C#:
string text = project.Variables["Name"].Value;
text = "какой-то текст ddd ddd ddd rr sdfs As"; //демо
char[] good = "asdfgh Rd".ToArray(); // что оставить - вводим все нужные символы
       good = good.Distinct<char>().ToArray();

var s = new StringBuilder();
for(int i=0; i<text.Length;i++) {
    if(good.Contains(text[i])) s.Append(text[i]);
}

project.Variables["Name"].Value = s.ToString();
 

bigloafer

Client
Регистрация
23.07.2020
Сообщения
241
Благодарностей
75
Баллы
28
где в вашем коде переменная я не пойму ? куда ее вписывать ?
C#:
string str = project.Variables["Name"].Value;     //    Строка которую обрабатываем
string res = "";                    //    Итоговая строка
foreach (char ch in str) {
    if (((int)ch >= 97 && (int)ch <= 122) | ((int)ch >= 65 && (int)ch <= 90)) {
        res += ch;
    }
}
project.Variables["Name"].Value = res; //присваиваем результат 
project.SendInfoToLog("итоговая строка: " + res);
 

filmcool

Client
Регистрация
04.12.2020
Сообщения
89
Благодарностей
10
Баллы
8
BAZAg и bigloafer

Большое пребольшое спасибо . попробуем
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 761
Благодарностей
2 401
Баллы
113
BAZAg и bigloafer

Большое пребольшое спасибо . попробуем
Даже так можно, возможно это лучше, чем в моем предыдущем примере.
C#:
string text = project.Variables["Name"].Value;
 text = "какой-то текст ddd ddd ddd rr sdRfs As";
char[] good = "asdfgh Rd".ToArray().Distinct<char>().ToArray();
project.Variables["Name"].Value = new string(text.Where(good.Contains).ToArray());
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)