Вы можете использовать скрытое хранилище для использования секретных ключей в проигрывателе. Определите свой пароль в 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}}
Вы можете сделать это с 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
Вы можете использовать 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();
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
}
надеюсь, что это сработает для вас.
Я внес небольшое изменение в ответ, опубликованный @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);
}