Тема: Збереження файлу без запиту на ім'я
Є 2 кнопки:
Мені потрібно зберегти у вже збережений файл без запиту на ім'я. Допоможіть будь-ласка розібратись з цим.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C#, .NET → Збереження файлу без запиту на ім'я
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Є 2 кнопки:
Мені потрібно зберегти у вже збережений файл без запиту на ім'я. Допоможіть будь-ласка розібратись з цим.
Зберігайте назву файлу у якійсь змінній.
Повідомлення про збереження файлу якщо той був змінений.
Мені потрібно щоб файл коли той був змінений, подавався запит на збереження.
У мене є код, але він працює не так як потрібно, він подає запит на збереження навіть якщо він не змінювався:
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
bool edt = true;
if (!edt)
{
}
else
{
if (MessageBox.Show("Зберегти?", "Текст змінено!", MessageBoxButtons.YesNo) == DialogResult.Yes)
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
saveGrid(saveFileDialog1.FileName);
}
}
}
Можливо причина через те що у мене створюється таблиця? Допоможіть будь-ласка.
Зберігайте назву файлу у якійсь змінній.
Я зберіг назву у зміну, тепер я заплутався. Я хочу замінити старий текст на новий. Допоможи мені розібратись ось код:
private void зберегтиToolStripMenuItem_Click(object sender, EventArgs e)
{
FileInfo fi = new FileInfo(Name);
string text = fi.Name;
string ext_only = Path.GetExtension(text);
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
saveGrid(saveFileDialog1.FileName.Replace(ext_only, ext_only));
}
}
Вибачте, це ваш код?
Так, але я переробив, тому що мені здається там нічого не правильно, ось новий код але він також не працює:
public void namm(string fname)
{
fname = saveFileDialog1.FileName;
}
private void зберегтиToolStripMenuItem_Click(object sender, EventArgs e)
{
File.Replace(saveGrid, namm, null);
}
Там пише що Аргументи 1 та 2 не вдалось перетворити з групи методів в string
До речі трішки почитав ваші статі. Я початківець в сфері програмування.
Так, тпру, цоб-цабе.
Комп'ютер працює за програмою. Програма - це послідовність операцій. Комп'ютер просто виконує ті операції, які ви йому задаєте. Це ви розумієте? Комп'ютер не може здогадатися, що вам треба, якщо ви самі не опишете саме ту послідовність операцій, що вам треба. А щоб описати її, вам спершу самому треба зрозуміти, що це будуть за операції. І нам теж, щоб допомогти вам щось запрограмувати, треба зрозуміти, що саме ви хочете зробити. Бо якщо ви самі не знаєте, що вам треба, то як ми вам зможемо допомогти і як комп'ютер зможе це виконати?
Поки що ви казали, що вам потрібно:
...зберегти у вже збережений файл без запиту на ім'я
...щоб файл коли той був змінений, подавався запит на збереження
...замінити старий текст на новий
Ви розумієте, що це 3 взагалі різні речі? Не те щоб несумісні, але різні? Ви в кожному випадку вже впоралися з попередніми проблемами і ставите нове завдання? Чи вас більше не цікавить попередня задача, бо ви перейшли до іншої? Чи ви зрозуміли, що неправильно пояснили, а тепер пояснюєте правильно? Будь ласка, викладіть послідовно, що саме ви хочете. Витратьте 15 хвилин свого часу і спокійно опишіть - як не для нас на форумі, то хоча б для себе, що саме ви робите, що у вас уже вийшло і що ви хочете змінити. Бо інакше ви витрачатимете значно більше часу на те, щоб зробити "якось так", а воно все не виходитиме і не виходитиме, бо комп'ютер так само не може зрозуміти, що вам треба, якщо ви цього самі не знаєте.
Все що зверху забуваємо!
Ось що мені потрібно:
У програмі є кнопки: Зберегти та Зберегти як. Зберегти як - зберігає файл під новим іменем(цей код у мене працює).
А кнопка Зберегти має зберегти файл у той файл який я вже зберіг кнопкою Зберегти як.
Проте у мене виникли труднощі з кнопкою Зберегти, у мене є код, але там помилки, допоможіть мені розібратись з помилками.
public void saveGrid(string fn) //Як повинен зберегтись файл
{
FileInfo f = new FileInfo(fn);
StreamWriter w = new
StreamWriter(f.Create());
string l;
for (int rc = 0; rc < dataGridView1.Rows.Count - 1; rc++)
{
l = "";
for (int cc = 0; cc <= dataGridView1.Columns.Count - 1; cc++)
{
l += dataGridView1.Rows[rc].Cells[cc].Value + "|";
}
l.Substring(0, l.Length - 1);
w.WriteLine(l);
}
w.Close();
}
public void namm(string fname) //Зберіг назву у зміну
{
fname = saveFileDialog1.FileName;
}
private void зберегтиToolStripMenuItem_Click(object sender, EventArgs e) // Кнопка зберегти
{
File.Replace(saveGrid, namm, null);
}
Помилка: Аргументи 1 2 не вдалось перетворити групу методів в string (File.Replace(saveGrid, namm, null);)
Щось я взагалі не розумію, що ви робите.
Зберегти як - це:
Спитати у користувача назву файлу
Зберегти туди дані
Правильно?
А просто зберегти - це:
Подивитися, чи є збережене ім'я файлу
Якщо є - записати туди дані
Якщо нема - зберегти як
Тобто вам потрібна змінна з іменем файлу на такому рівні, щоб вона зберігалася весь час роботи програми. Наприклад, це може бути змінна самої форми з кнопками. Коли хтось тисне "зберегти як" - ви записуєте ім'я в цю змінну:
Зберегти як - це:
Спитати у користувача назву файлу
Зберегти туди дані
Зберегти ім'я файлу у змінну
От і все. Ніяких замін, ніяких додаткових діалогів.
І так, оскільки ви, схоже, не розібралися:
public void namm(string fname) //Зберіг назву у зміну { fname = saveFileDialog1.FileName; }
Параметр функції fname є локальним (має область видимості - функцію). Після виходу з функції він знищується. Відповідно, ця функція змінює локальну змінну і все, більше нікуди це значення не потрапляє.
Допоможіть будь-ласка, як помістити в string ім'я збереженого файлу? Дякую!
Будь ласка, не розмножуйте теми.
У вас, я так розумію, є елемент форми saveFileDialog1, правильно? Ну от у нього є FileName - це і є потрібна вам назва. C# вже за вас це зробив.
Будь ласка, не розмножуйте теми.
А то це ви теми контролюєте. А я думаю чому я створив тему, а вона перемістилась сюди, 4 повідомлення не стосувалось цієї теми
koala написав:Будь ласка, не розмножуйте теми.
А то це ви теми контролюєте. А я думаю чому я створив тему, а вона перемістилась сюди, 4 повідомлення не стосувалось цієї теми
У такому разі вам потрібен оператор =, і це абсолютно точна відповідь на ваше питання. Ви дійсно її не знали?
Описуйте проблему повністю, бо зараз виглядає, що питання точно стосується цієї теми.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися