[ C# / Java ] — начинающим: задаем вопросы

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by procedure, 2 Nov 2008.

  1. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    неа, не было. иногда, когда visual studio глючит, помогает очистить пройект. запускается из меню Build.
     
  2. jecka3000

    jecka3000 Elder - Старейшина

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    к радости многих, скорее всего, это мой последний вопрос,т.к. заканчиваю писать курсач=))

    Пытаюсь сохранить информацию из ЛистБокса
    Code:
    private void bt5_Click(object sender, EventArgs e)
            {
                string s;
                saveFileDialog1.Filter = "Текстовые файлы (*.txt)|*.txt";
               if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                   s = saveFileDialog1.FileName;
                   saveFileDialog1.OpenFile();
    
              s = saveFileDialog1.FileName;
                FileStream FS = new FileStream(s, FileMode.OpenOrCreate, FileAccess.ReadWrite);
    
                StreamWriter SW = new StreamWriter(FS);
    
                SW.WriteLine(rt2.Text);
                SW.Close();
                FS.Close();
            }
    при запуске программы открывается диалоговое окно, ну и просит ввести имя файла, ввожу и компиллер мне выделяет строчку FileStream FS = new FileStream(s, FileMode.OpenOrCreate, FileAccess.ReadWrite);
    хз что ему не нравится...))
     
  3. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    using System.IO; ?

    а зачем два раза определятъ s = saveFileDialog1.FileName; ?
     
  4. jecka3000

    jecka3000 Elder - Старейшина

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    BrainDeaD,
    и using System.IO; тоже=)
     
  5. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    охренеть.

    TryParse уже не попсово?
     
    1 person likes this.
  6. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    что тоже? выделяет?

    кроме того, где ты определил начальное значение переменной s? string s = string.Empty;
    и это лишнее saveFileDialog1.OpenFile();
     
    1 person likes this.
  7. jecka3000

    jecka3000 Elder - Старейшина

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    ИО присутствует в коде, не выделяет...
    заюзал то что ты говоришь, все равно не катит. Думаю просто недать право юзеру выбирать имя файла, а пускай оно будет по дефолту какое нить.. например=)
    FileStream FS = new FileStream(1.txt, FileMode.OpenOrCreate, FileAccess.ReadWrite);

    но все равно спасибо!=)
     
  8. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    C#: написал класс для ресайза изображений: http://paste.ly/1sy
    Класс жрет много памяти, при работе в многопоточном режиме..
    Прошу помощи )
    ---
    /*возможно*/ ошибка в другом месте..
    http://goo.gl/ggNL

    [​IMG]
     
    #488 eLWAux, 1 Jun 2010
    Last edited: 1 Jun 2010
  9. Bers

    Bers Member

    Joined:
    17 May 2010
    Messages:
    78
    Likes Received:
    30
    Reputations:
    26
    Глянул код, сразу бросилось в глаза:
    Code:
    try
    {
      // ...
     Graphics oGraphic = Graphics.FromImage(...);
      // ...
      oGraphic.Dispose();
      // ...  
      return oThumbNail;
    }
    catch (Exception)
    {
       return oImg;
    }
    
    Перепиши с использованием оператора using:
    Code:
    try
    {
      // ...
     using(Graphics oGraphic = Graphics.FromImage(...))
      {
        // ...
        return oThumbNail;
      }
    }
    catch (Exception)
    {
       return oImg;
    }
    
    В твоем коде возможна ситуация, когда Dispose() не будет вызван, что вообще грубейшая ошибка. Классы из System.Drawing являются обертками над функциями GDI, т.е. работает с неуправляемыми ресурсами, поэтому эти ресурсы следует корректно высвобождать. Возможно, у тебя имеет место утечка памяти.
    Насчет потоков - не ясно, как ты ими управляешь (создаешь сам, используешь пул потоков), но вообще GDI не гарантирует потокобезопасности, она предназначена для работы в одном потоке, для отрисовки GUI. Возможно, это также вызывает проблемы в твоем случае. Советую переписать твой класс с использованием классов из WPF, они не привязаны к GDI.
    Ну и напоследок посоветую погонять приложение под отладчиком и под профайлером, это тоже может дать полезную информацию для расмышления.
    Удачи! :)
     
    #489 Bers, 2 Jun 2010
    Last edited: 2 Jun 2010
    2 people like this.
  10. CroCop

    CroCop New Member

    Joined:
    27 Sep 2009
    Messages:
    25
    Likes Received:
    4
    Reputations:
    0
    Code:
    ...public class General{ public static void main(String[] args) throws IOException {
    ..... 
    System.out.println(myPark); 
    int result= System.in.read(); } }...
    Есть программа написанная на Java(использвовал Intelij IDEA 8),компилирую(консоль,встроенная в среду разработки,отображает все нормально),создаю файл Jar(опять-таки в среде). При его запуске консоль не появляется. Что делать?
     
  11. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Я надеюсь ты в консоле запускаешь java -jar filename.jar ?
     
  12. vicgerrard

    vicgerrard New Member

    Joined:
    4 Apr 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Сохраняем информацию из листБокса:
    PHP:
    using (System.IO.StreamWriter writer = new System.IO.StreamWriter("file.txt"))
                {
                    foreach (
    string elem in listBox1.Items)
                    {
                        try 
                        {
                            
    writer.WriteLine(elem);
                        }
                        catch(
    Exception ex)
                        {
                            
    MessageBox.Show(ex.Message);
                        }
                    }
                }
    Читаем информацию из файла и записываем её в листБокс:
    PHP:
     using (System.IO.StreamReader reader = new System.IO.StreamReader("file.txt"))
                            {
                                
    string line;
                                try
                                {
                                    while ((
    line reader.ReadLine()) != null)
                                    {
                                        
    listBox1.Items.Add(line);
                                    }
                                }
                                catch (
    Exception ex)
                                {
                                    
    MessageBox.Show(ex.Message);
                                }
                            }
     
    #492 vicgerrard, 2 Jun 2010
    Last edited: 3 Jun 2010
  13. Roston

    Roston Elder - Старейшина

    Joined:
    31 Jul 2008
    Messages:
    337
    Likes Received:
    104
    Reputations:
    8
    добрый день. никак не могу разобратся с проблемкой

    суть описал тут http://www.askdev.ru/question/2186/-

    влом копипастить
     
  14. jecka3000

    jecka3000 Elder - Старейшина

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    Не сохраняет инфу из ЛистБокса. Создает файл ткст в папке с прогой, пишет, что размер 1 кб, открываешь, а там пусто=)

    Code:
    private void bt5_Click(object sender, EventArgs e) // сохраняем всю информацию из ЛистБокса.
            {
    
    
                FileStream FS1 = new FileStream("schet_info.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
    
                StreamWriter SW1 = new StreamWriter(FS1); //ин-ция будет сохранена в папке Debug
    
                SW1.WriteLine(listBox1.Text);
                SW1.Close();
                FS1.Close();
    
            }
    как визуализировать?)
     
  15. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    в listBox1.Text, если не ошибаюсь, лежит текст елемента , который сейчас актив.
    попробуй данные и listBox1.Items достать перебором
     
  16. jecka3000

    jecka3000 Elder - Старейшина

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    уже начал хоть что то выводить=)

    System.Windows.Forms.ListBox, Items.Count: 1, Items[0]:
     
  17. jecka3000

    jecka3000 Elder - Старейшина

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    вот деляю по аналогии с РичБоксом и все пашет на ура.
    Code:
    private void bt8_Click(object sender, EventArgs e) // сохраняем выведенную информацию из Поиска
            {
                
                
                FileStream FS3 = new FileStream("serch_info.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
    
                StreamWriter SW3 = new StreamWriter(FS3);
    
                SW3.WriteLine(rt3.Text);
                SW3.Close();
                FS3.Close();
            }
    странно что листбокс отказывается работать...
     
  18. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    ты видимо не понял своей ошибки.
    кликни на любом елементе listbox'а, и жми на свою кнопочку "Сохранить", в файле будет текст того выделенного елемента.
     
    1 person likes this.
  19. jecka3000

    jecka3000 Elder - Старейшина

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    eLWAux, спасибо, понял. Да, при выделении все ок. А нельзя как то обойти это выделение, дело в том что у меня в ЛистБоксе может быть и 10 и 15 строчек(!) и нужно сохранить их все=)
     
  20. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    StringBuilder a = new StringBuilder();
    foreach(string str in listBox.Items)
    {
    a.AppendLine(str);
    }

    сохраняешь a.ToString() и все
     
Loading...
Similar Threads - Java начинающим задаем
  1. b3
    Replies:
    4
    Views:
    3,167