#c# #text
#c# #текст
Вопрос:
Я создаю консольное приложение на c #, которое фактически берет все строки из text1 и добавляет к нему в конце каждой строки текст, который является «.php?» или «.html? и эти тексты также являются строками из text2, я хочу напечатать первый в text2 в конце каждой строки в text1. Затем возьмите второй в text2 и делайте то же самое, пока он не завершит text2?
Вот мой код:
string[] resultConfig = File.ReadAllLines("keywords.txt");
string[] readParameters = File.ReadAllLines("param.txt");
for (int i = 0; i < readParameters.Length; i )
{
for (int x = 0; x < resultConfig.Length ; x )
{
resultConfig[x] = resultConfig[x] readParameters[i];
Console.WriteLine(resultConfig[x]);
}
}
ВЫВОД:
**
keyboards.php?.html?.asp?
karachi.php?.html?.asp?
keychain.php?.html?.asp?
in khobar.php?.html?.asp?
lebanon.php?.html?.asp?
lights.php?.html?.asp?
london.php?.html?.asp?
must have.php?.html?.asp?
**
**
WHAT IT SHOULD BE:
keyboards.php?
karachi.php?
keychain.php?
in khobar.php?
lebanon.php?
lights.php?
london.php?
must have.php?
keyboards.html?
karachi.html?
keychain.html?
in khobar.html?
lebanon.html?
lights.html?
london.html?
must have.html?
**
и т.д…
** КЛЮЧЕВЫЕ СЛОВА.ТЕКСТ СОДЕРЖИТ **
keyboards
karachi
keychain
in khobar
lebanon
lights
london
must have
** ПАРАМЕТР.ТЕКСТ СОДЕРЖИТ **
.php?
.asp?
.html?
Комментарии:
1. Можете ли вы привести пример вашего
keywords.txt
иparam.txt
?2. Я добавил его, проверьте это
3. Вы не сможете добавить в массив больше элементов, чем он инициализирован (похоже, вы хотите увеличить размер
resultConfig
в 3 раза). Возможно, вы захотите использоватьList<string>
вместо.4. Как я могу сохранить результаты в текстовом файле?
Ответ №1:
Ваша проблема в этой строке resultConfig[x] = resultConfig[x] readParameters[i];
. В этой строке вы меняете свою строку, resultConfig[x]
и поскольку вы используете вложенный цикл, это происходит для каждой строки в вашем *param.txt ` досье.
Чтобы записать желаемый результат в консоли, попробуйте вместо этого этот код:
string[] resultConfig = File.ReadAllLines("keywords.txt");
string[] readParameters = File.ReadAllLines("param.txt");
for (int i = 0; i < readParameters.Length; i )
{
for (int x = 0; x < resultConfig.Length ; x )
{
string line = resultConfig[x] readParameters[i];
Console.WriteLine(line);
}
}
Комментарии:
1. Как я могу сохранить результаты в текстовом файле?
Ответ №2:
Вы продолжаете добавлять параметр в конфигурацию, и вам следует изменить порядок циклов, а не изменять значение в массиве.
Что-то вроде этого:
string[] resultConfig = File.ReadAllLines("keywords.txt");
string[] readParameters = File.ReadAllLines("param.txt");
for (int x = 0; x < resultConfig.Length ; x )
{
for (int i = 0; i < readParameters.Length; i )
{
Console.WriteLine(resultConfig[x] readParameters[i]);
}
}
Комментарии:
1. СПАСИБО, СРАБОТАЛО КАК CHARRM <3, но если я хочу добавить еще что-то такое же, как readParameter ? а также это будет после readParameter я просто сделаю то же самое?
2. Вы можете просто объединить больше строк, если хотите
Console.WriteLine(resultConfig[x] readParameters[i] more);
.3. Как я могу сохранить результаты в текстовом файле?
Ответ №3:
Похоже, вы хотите сохранить все эти результаты в resultConfig
массиве, но вы не можете просто добавить в массив больше элементов, чем он был инициализирован — сначала вы должны изменить его размер с помощью Array.Resize(ref resultConfig, resultConfig.Length * readParameters.Length)
.
Однако даже тогда будет немного сложно добавить к первому набору элементов, а затем добавить новые элементы для дополнительных параметров (это можно сделать, если это действительно необходимо).
Вместо этого я бы создал новый List<string>
, чтобы сохранить результаты, и оставил исходные массивы такими, какие они есть:
string[] resultConfig =
{
"keyboards",
"karachi",
"keychain",
"in khobar",
"lebanon",
"lights",
"london",
"must have"
};
string[] readParameters = {".php?", ".html?", ".asp?"};
var allCombinations = new List<string>();
for (int i = 0; i < readParameters.Length; i )
{
for (int x = 0; x < resultConfig.Length; x )
{
allCombinations.Add(resultConfig[x] readParameters[i]);
Console.WriteLine(resultConfig[x] readParameters[i]);
}
}
Комментарии:
1. Как я могу сохранить результаты в текстовом файле?
2.
File.WriteAllLines(filePath, allCombinations);