Фильтрация конкретных чисел из TXT-файла с помощью C #

Вы можете использовать скрытое хранилище для использования секретных ключей в проигрывателе. Определите свой пароль в yml.

ex. pass: secret или

user:
  pass: secret
  name: fake

зашифровать ваш файл секретов с помощью:

ansible-vault encrypt /path/to/credential.yml

ansible запросит пароль для его шифрования. (я объясню, как использовать этот проход)

И тогда вы можете использовать свои переменные там, где хотите.

Использование ключа Vault:

через передающий аргумент при запуске playbook.

--ask-vault-pass: secret

или вы можете сохранить в файл, например password.txt, и спрятать где-нибудь. (полезно для пользователей CI)

--vault-password-file=/path/to/file.txt

В вашем случае: включить vars yml и использовать переменные.

- include_vars: /path/credential.yml

  - name: Add deployment user
    action: user name={{user.name}} password={{user.pass}}
0
задан Grant 16 January 2019 в 23:52
поделиться

4 ответа

Вы можете сделать это с Linq и Regex.

var array = str.Split(new []{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries);
var regex = new Regex(@"(Dimension)\s+(text)\s+(=)\s+(?<Value>([+-]?(\d*\.)?\d+)+)",RegexOptions.Compiled);
var resultArray =  from entry in array
                let match = regex.Match(entry)
                where match.Success                
                select decimal.Parse(match.Groups["Value"].Value);

Вывод для данного примера в OP

712.75 
628.70 
0
ответ дан Anu Viswan 16 January 2019 в 23:52
поделиться

Вы можете использовать File.ReadLines и LINQ, чтобы запросить файл и разбить интересующие вас строки, чтобы выбрать размеры. Я не уверен, как он будет работать, если файл огромен, но он должен работать довольно хорошо.

var logFile = File.ReadLines("your_file_path")

var dimensions = (from entry in logFile
                  where entry.StartsWith("Dimension text")
                  let parts = entry.Split(' ')
                  select decimal.Parse(parts.Last())).ToList();
0
ответ дан Grant 16 January 2019 в 23:52
поделиться
        FileInfo fi = new FileInfo("FILE LOCATION");
        StreamReader reader = new StreamReader( fi.ToString() );
        String Line = "";
        while ( ( Line = reader.ReadLine() ) != null )
        {
            if ( !Line.Contains("Dimension text") {
                continue;
            }
            String Property = Line.Split( '=' )[0];
            String Value = Line.Substring( Property.Length + 1, Line.Length - Property.Length - 1 );
            Console.WriteLine( Value ); // This line will print value of Dimension text
        }

надеюсь, что это сработает для вас.

0
ответ дан Arphile 16 January 2019 в 23:52
поделиться

Я внес небольшое изменение в ответ, опубликованный @AnuViswan, чтобы получить каждую запись:

string str = richTextBox1.Text;
        var array = str.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
        var regex = new Regex(@"(?<Value>([+-]?(\d*\.)?\d+)+)", RegexOptions.Compiled);
        MatchCollection matches = regex.Matches(str);
        foreach (Match la in matches)
        {
            Console.writeLine(la);
        }
0
ответ дан InigoMontoyaJr 16 January 2019 в 23:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: