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

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

  1. inCode

    inCode Member

    Joined:
    20 Jun 2011
    Messages:
    141
    Likes Received:
    22
    Reputations:
    5
    неправильное использование перегрузки метода класса. Смотри внимательно на входящие значения функции.
    Code:
    public void ShowMessage() 
            {
                string text = "Main text";
                MessageBox.Show("Text 1 " + text + " Text 2");
            
            }
     
  2. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Ага, как и сказал inCode. Присмотрись, что за методы вообще имееются в наличии.
     
  3. no.Rem

    no.Rem New Member

    Joined:
    8 Apr 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Всем доброго времени суток. Такой вопрос допустим я хочу написать простенький (для начала) чекер mail.ru на JAVA , и вот вопрос , как можно соединиться с почтовым сервером?? в инете адекватного ответа к сожалению не нашел..
     
  4. return

    return New Member

    Joined:
    23 Oct 2010
    Messages:
    125
    Likes Received:
    3
    Reputations:
    1
    Не стал искать в гугле, но думаю ответов там полно, просто вспомнилось что когда то была лаба у меня по сетям и в ней надо было сделать:
    но одно НО, сервер я использовал локальный, но думаю переделать не составит труда, или хотя бы понять в какое направление капать.
    Code:
    package server;
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import java.util.regex.*;
    public class Server {
        private static boolean isEmail(String str) {
            Pattern p = Pattern.compile("(([a-zA-Z][\\w]*)@[\\w[.]]*\\.+([a-z]+))");
            Matcher m = p.matcher(str);
            return m.matches();
        }
        public static void main(String[] args) {
            if(args.length!=2) {
                System.out.println("mail file");
                return;
            }
    
     
            String email = args[0];
            if(!isEmail(email)) {
                System.out.println("Email is bad");
                return;
            }
            File f = new File(args[1]);
            if(!f.isFile()) {
                System.out.println("File is bad");
                return;
            }
            BufferedReader br = null;
            String str = "";
            try {
                br = new BufferedReader(new FileReader(args[1]));
                String buf;
                do {
                    buf = br.readLine();
                    if(buf!=null)
                        str+=buf;
                } while(buf!=null);
            } catch(IOException e) {
                System.out.println(e);
            }
            try {
                br.close();
            } catch (IOException e) {
                System.out.println(e);
            }
            Mail mail = new Mail(email, str);
        }
    }
    class Mail {
        private Scanner in;
        private PrintWriter pw;
        public Mail(String email, String text) {
            try {
                Socket s = new Socket("localhost", 25);
                InputStream ins = s.getInputStream();
                OutputStream outs = s.getOutputStream();
                in = new Scanner(ins);
                pw = new PrintWriter(outs, true);
                String HostName = InetAddress.getLocalHost().getHostName();
                receive();
                send("helo " + HostName);
                receive();
                send("mail from:<" + email + ">");
                receive();
                send("rcpt to:<admin@test1.ru>");
                receive();
                send("data");
                receive();
                send(text);
                send(".");
                receive();
                s.close();
            } catch(IOException e) {
                e.printStackTrace();
            }
        }
        private void receive() throws IOException {
            if(in.hasNextLine())
                System.out.print(in.nextLine() + "\n");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                System.out.println(e);
            }
        }
        private void send(String str) throws IOException {
            System.out.print(str + "\n");
            pw.print(str.replaceAll("\n", "\r\n"));
            pw.print("\r\n");
            pw.flush();
        }
    }
    
    З.Ы. думаю не помешает выучить команды smtp протокола.
     
  5. shatafacka

    shatafacka New Member

    Joined:
    23 Mar 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Приветствую всех,
    у меня такой вопрос: в рунэте есть много ПП по продажам соксов. Я столкнулся с такой проблемой, что некоторые из них не дают доступ напрямую к соксу - а делают сервер через которого они открывают этот доступ.

    Подскажите пожалуйста как всё это устроено и как оно работает, особо интересует работа с 25-ым портом на этих серверах.
    Дайте Пожалуйста пример кода хотябы как искать в гугле =)

    За ранее спасибо )
     
  6. Stis-mag

    Stis-mag New Member

    Joined:
    22 Nov 2010
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    Как реализовать программное редактирования ячейки через bindingsource?
    Гугл в этот раз мне не помог.
     
  7. shatafacka

    shatafacka New Member

    Joined:
    23 Mar 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0

    лучше будет использовать SortableBindingList
    dataGridView1.DataSource = new SortableBindingList<cLineItem>(lines);

    но я не понимаю в каком контенте тебе нужно такое...
    объясни поподробнее...
     
  8. Stis-mag

    Stis-mag New Member

    Joined:
    22 Nov 2010
    Messages:
    55
    Likes Received:
    0
    Reputations:
    0
    У меня база Access 2003
    1 на форме DataSet, DataAdapter, BindingSource.
    2 BindingSource присвоен к dataGridView
    3 нужно отредактировать ячейку в dataGridView
    Так вот, пытаюсь отредактировать ее через BindingSource

    как то так...
     
  9. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    О BindingSource, DataBindings :
    naugrim.ru/notes/privyazka-dannyx-data-binding-c?page=0,0
     
  10. Vladislav88

    Vladislav88 New Member

    Joined:
    5 Dec 2011
    Messages:
    40
    Likes Received:
    1
    Reputations:
    0
    Помогите пожалуйста решить следущую проблему:
    Читаю книгу "Философия JAVA" Брюса Эккеля и там есть пример

    Code:
    //: control/BreakAndContinue.java
    // Demonstrates break and continue keywords.
    import static net.mindview.util.Range.*;
    
    public class BreakAndContinue {
      public static void main(String[] args) {
        for(int i = 0; i < 100; i++) {
          if(i == 74) break; // Out of for loop
          if(i % 9 != 0) continue; // Next iteration
          System.out.print(i + " ");
        }
        System.out.println();
        // Using foreach:
        for(int i : range(100)) {
          if(i == 74) break; // Out of for loop
          if(i % 9 != 0) continue; // Next iteration
          System.out.print(i + " ");
        }
        System.out.println();
        int i = 0;
        // An "infinite loop":
        while(true) {
          i++;
          int j = i * 27;
          if(j == 1269) break; // Out of loop
          if(i % 10 != 0) continue; // Top of loop
          System.out.print(i + " ");
        }
      }
    } /* Output:
    0 9 18 27 36 45 54 63 72
    0 9 18 27 36 45 54 63 72
    10 20 30 40
    *///:~
    
    Функция range(100) вызывается из библиотеки net.mindview.util.Range.* которую как я понимаю создал автор книги. Но и функция и библиотека у меня в Netbeans подчеркнуты красным и при выполнении выдается ошибка компиляции : package net.mindview.util does not exist. Где не читал в гугле не смог найти ответ как использовать свои библиотеки. Пытался добавить через classpath , пытался добавить в netbeans свою библиотеку но как я понял и читал то библиотеки должны быть .jar , а у меня .java.
    Здесь находится папка и с примером и все библиотеки ( пример находится в control/BreakAndContinue.java, а библиотеки в net.mindview.util)
    Подскажите пожалуйста что нужно сделать чтобы заработала программа? А то дальше в книге все примеры основаны на этих библиотеках.
    Заранее спаибо за ответ.
     
  11. return

    return New Member

    Joined:
    23 Oct 2010
    Messages:
    125
    Likes Received:
    3
    Reputations:
    1
    Vladislav88 конечно же библиотеки должны быть в .jar файлах. На сколько я помню то просто откомпилируй те .java файлы и будет тебе либа, которую потом сможешь подключать. Сейчас нету времени пощупать твои примеры, но поищи в гугле "как создать библиотеку в java", думаю всё станет ясно.
     
  12. dreamstep

    dreamstep New Member

    Joined:
    16 Mar 2012
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте. С#. Не могу решить такую задачу есть строка с координатами точке по х и у. Нужно чтобы эти координаты записывались у меня в программе, по ним строится многоугольник. Но я делаю фиксированное число линий ( ниже код). Как сделать чтобы в строке было записаное любое число точек? Например сейчас у меня работает
    10 10 20 40 60 80 10 160 - это прямоугольник. Как переделать код, чтобы можно было любое число точек писать? Подскажите пожалуйста))))
    Code:
     string[] str2 = str.Split(' ');
                            Line friengA = new Line(Convert.ToInt32(str2[0]), Convert.ToInt32(str2[1]),
                            Convert.ToInt32(str2[2]), Convert.ToInt32(str2[3]));
                            Line friengB = new Line(Convert.ToInt32(str2[2]), Convert.ToInt32(str2[3]),
                            Convert.ToInt32(str2[4]), Convert.ToInt32(str2[5]));
                            Line friengC = new Line(Convert.ToInt32(str2[4]), Convert.ToInt32(str2[5]),
                            Convert.ToInt32(str2[6]), Convert.ToInt32(str2[7]));
                            Line friengD = new Line(Convert.ToInt32(str2[6]), Convert.ToInt32(str2[7]),
                           Convert.ToInt32(str2[0]), Convert.ToInt32(str2[1]));
    
                            frienges.Add(friengA);
                            frienges.Add(friengB);
                            frienges.Add(friengC);  
                            frienges.Add(friengD);
     
    #1312 dreamstep, 21 Apr 2012
    Last edited by a moderator: 21 Apr 2012
  13. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Можно например так:

    Code:
    int AmountOfLines;//сюда пользователь вводит количество точек,
                //или мы сами можем считывать количество точек введёных пользователем.
    
                 for( int i = 0 ; i < AmountOfLines; i ++)
        {
    
    
    
           if(i != (AmountOfLines - 1))
           {
                     
                            frienges.Add(new Line(Convert.ToInt32(str2[i]), Convert.ToInt32(str2[i+1]),
                                         Convert.ToInt32(str2[i+2]), Convert.ToInt32(str2[i+3]));
               i++;
           }
    
           else 
           {
                frienges.Add(new Line(Convert.ToInt32(str2[i]), Convert.ToInt32(str2[i+1]),
                                         Convert.ToInt32(str2[0]), Convert.ToInt32(str2[1]));
           }
        }
    
    Внимание! Не дебагил, проверь на наличие помарок.
    
     
  14. dreamstep

    dreamstep New Member

    Joined:
    16 Mar 2012
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Spot, так ругается, что у аргументов неправильный формат....
     
  15. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Скинь, ругань - посмотрим, а то телепаты в отпуске :)

    А лучше сразу весь код.
     
  16. DeepBlue7

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

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    c#.

    Надо засторить в массиве данные типа

    1 = "text"

    Чтот не совсем врубаюсь как это реализовать в одном массиве, т.е. двухранговом.

    Подскажите, как :).

    Заранее благодарю.
     
    #1316 DeepBlue7, 23 Apr 2012
    Last edited: 23 Apr 2012
  17. return

    return New Member

    Joined:
    23 Oct 2010
    Messages:
    125
    Likes Received:
    3
    Reputations:
    1
    DeepBlue7 использовать списки не покатит? или так String[][] ?
     
  18. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Можно разными способами, например:
    Code:
    var stringArray= new string[2,2];
    stringArray[0,0] = "1";
    stringArray[0,1] = "test";
    //...
    //И так далее
    
    Или так:
    Code:
    
    //Структура массива  - две ячейки.
    public class myStringClass
    {
    public string FirstCell {get; set};
    public string SecondCell {get; set;}
    
    }
    
    //Создаем инстанцию для List<>
    List<myStringClass> myStringVar = new List<myStringClass>();
    
    //Добавляем запись
    myStringVar.Add(new myStringClass{ FirstCell ="Пишем 1", SecondCell ="Пишем 2"});
    
    
    Второй вариант ессно лучше, можно лепить записи любой формы.
     
    1 person likes this.
  19. Vladislav88

    Vladislav88 New Member

    Joined:
    5 Dec 2011
    Messages:
    40
    Likes Received:
    1
    Reputations:
    0
    До сих пор не получилось подключить свою библиотеку. Я беру файл Range.java , в консоле пишу jar cf Range.jar Range.java, мне создается jar файл в 1kb. В Netbeans кликаю на library и выбираю добавить jar-файл , добавляю. В Classpath в переменых средах прописываю путь к Range.jar который я создал. Сам Range.jar я полохжил в папку net в папаке с проектом netbeans , в программном коде пишу import net.Range.*; и у меня подчеркнуто красным net и выдает ошибку :
    Code:
    java.lang.ExceptionInInitializerError  Caused by: java.lang.RuntimeException: Uncompilable source code - package net does not exist  	at BreakAndContinue.<clinit>(BreakAndContinue.java:3)  Exception in thread "main" Java Result: 1
    Что я не так делаю ?
    Мне кажется самое простое просто положить Range.jar в стандарнтую библиотеку java.util , но где она находиться? никак не могу ее найти.
    Уже несколько дней роюсь в гугл а толку ноль (
    Спасибо за ответ.
     
  20. moodoone

    moodoone Member

    Joined:
    21 Oct 2009
    Messages:
    144
    Likes Received:
    38
    Reputations:
    5
    Помогите пожалуйста c C#.
    Нужно нарисовать пунктиром треугольник с 3 точками, которые задаются мышкой
    Указания:
    У объект Pen, которым вы собрались рисовать треугольник, а именно в его свойство DashStyle укажите что-то из перечня DashStyle.
    А треугольник лучше нарисовать методом Graphics.DrawPolygon
     
Loading...