Стояла задача сформировать некий файл из нескольких путём сложения, вычитания, деления и т.д. Но в конце него я хочу добавить одну строку, не могу понять, как это сделать..
private void btCalc_Click(object sender, EventArgs e)
{
TXT.Text = "";
int b = -1;
string txt = "";
for (int i = 0; i < lBLN.Count; i++)
{
int a = b + 1;
b = GetB(a);
int n = RB1.Checked ? b - a + 1 : 2;
double xa = lBLN[i].xa;
double xb = lBLN[i].xb;
double ya = lBLN[i].ya;
double yb = lBLN[i].yb;
double dx = xb - xa;
double dy = yb - ya;
double dx1 = lDAT[b].x;
double dy1 = dy * dx1 / dx;
double cx = dx1 / (n - 1);
double cy = dy1 / (n - 1);
double x,y;
for (int k = a; k <= b; k++)
{
if (RB1.Checked)
{
x = xa + (k - a) * cx;
y = ya + (k - a) * cy;
}
else
{
dx1 = lDAT[k].x;
dy1 = dy * dx1 / dx;
x = xa + dx1;
y = ya + dy1;
}
txt += "" + x + " " + y + " " + lDAT[k].z + "\n";
}
}
TXT.Text = txt.Replace(',', '.');
btSave.Focus();
}
Тут формируется то, что мне нужно в richtextbox
txt += "" + x + " " + y + " " + lDAT[k].z + "\n";
Я хочу добавить всего одну строчку снизу "" + xb + " " + yb + " " + lDAT[b].z + "\n"; Но если я это приписываю к txt+=, то эта строка у меня каждый раз (да и понятно, почему). Как мне её в самый конец затолкать?
PS. Задача, описанная выше - решилась, но возник вопрос. Необходимо удалить сначала одну строку из моего richtextbox, а затем только добавить нужную нам строку.
Richtextbox формируется так: txt += "" + x + " " + y + " " + lDAT[k].z + "\n";
Затем, после выполнения цикла я хочу удалить строку последнюю. пишу код:
string lastLine = TXT.Lines.Last();
TXT.Lines = TXT.Lines.Where(x => x != lastLine).ToArray();
, но удаления не происходит, так как когда выполнялся цикл, у нас каретка бежала вниз "\n" и получается пустая строка. Если мы перед этим кодом, также вне цикла, добавим вручную строчку txt += "" + xb + " " + yb + " " + lDAT[b].z
, то она не появится, так как код для удаления выполнится. Как избавиться от проблемы с кареткой?
В общем я не стал делать красиво, хотя может следовало бы, просто продублировал объявление переменных перед циклом, оставив и в цикле то же самое.
private void btCalc_Click(object sender, EventArgs e)
{
TXT.Text = "";
int b = -1;
string txt = "";
int ii=0;
double xbb = lBLN[ii].xb;
double ybb = lBLN[ii].yb;
for (int i = 0; i < lBLN.Count; i++)
{
int a = b + 1;
b = GetB(a);
int n = RB1.Checked ? b - a + 1 : 2;
double xa = lBLN[i].xa;
double xb = lBLN[i].xb;
double ya = lBLN[i].ya;
double yb = lBLN[i].yb;
double dx = xb - xa;
double dy = yb - ya;
double dx1 = lDAT[b].x;
double dy1 = dy * dx1 / dx;
double cx = dx1 / (n - 1);
double cy = dy1 / (n - 1);
double x,y;
for (int k = a; k <= b; k++)
{
if (RB1.Checked)
{
x = xa + (k - a) * cx;
y = ya + (k - a) * cy;
}
else
{
dx1 = lDAT[k].x;
dy1 = dy * dx1 / dx;
x = xa + dx1;
y = ya + dy1;
}
txt += "" + x + " " + y + " " + lDAT[k].z + "\n";
}
}
txt += "" + xbb + " " + ybb + " " + lDAT[b].z + "\n";
TXT.Text = txt.Replace(',', '.');
btSave.Focus();
}
Ну и дополнение. Проблема с удалением каретки (удаление появившейся пустой строки решается через Trim). В случае моей задачи TXT.Text = txt.Replace(',', '.').Trim('\n');
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я делаю не большую утилиту по скачиванию музыки из ВКИспользую библиотеки VK NET для C#
У меня есть переменная public Int Counter=0; и в методе Update есть динамическое условие при котором выполняется условие if (ObjIntersectsWith(Obj1)) я хочу вести...
данный код резко поворачивает объект по направлению вектораА как сделать плавный поворот по вектору?
Пишу софт, который документирует (описывает) формат обмена данными для SOAP сервисов