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

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

  1. Forcer

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

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    WAYS
    Что мешает создать текстовый файл и обозвать его *.ini? И записывай что хочешь туда.
     
  2. WAYS

    WAYS New Member

    Joined:
    12 Nov 2008
    Messages:
    36
    Likes Received:
    0
    Reputations:
    0
    Я не знаю как потом считать или изменить только порт например.
     
    #22 WAYS, 15 Nov 2008
    Last edited: 15 Nov 2008
  3. Forcer

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

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    1. работай с XML файлом - лучший вариант, если тебе только не нужна структура вида
    Code:
    key=value
    2. c# не знаю, но в java есть класс Properties. Ему даешь файл( i/o stream ) и дальше дергаешь методы getProperty(key), setProperty(key, value), в зависимости от того что тебе нужно. В c#, мне кажется, должно быть что-либо подобное. Попробуй погуглить.
    3. можно "вручную" парсить файл - но это бяка.... Но если ничего не найдешь более подходящего - то делай так - в любой книжке по шарпу есть работа с файлами.
     
  4. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
  5. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    Советую почитать про:
    Сериализацию;
    Properties

    вот наглядный пример: http://www.sendspace.com/file/n9ykab
     
  6. WAYS

    WAYS New Member

    Joined:
    12 Nov 2008
    Messages:
    36
    Likes Received:
    0
    Reputations:
    0
    W!z@rD
    Forcer
    Спасибо. Не уменю кидать плюсики :)
     
  7. procedure

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

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Допустим есть таблица в которой хранится информация в виде { ID, ФИО, Должность, Двоичные данные (картинка)}. Как можно сделать что то типа собственного GridView. т.е. я хочу чтобы все это было отформатировано не по стандартному. т.е. не простой таблицой, а допустим в некой собственной форме. ?
     
  8. procedure

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

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Прошлую проблему решил, появилась новая. Подскажите пожалуйста аналог библиотеки cURL в php для C#.

    т.е. cURL применяется для моделирования действий в браузере, а в C# есть ли подобное?
     
  9. Kaas

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

    Joined:
    13 Feb 2007
    Messages:
    31
    Likes Received:
    5
    Reputations:
    0
    WebBrowser + mshtml
    эта связка позволяет неплохо работать с деревом объектов html документа (можно и без mshtml, но тогда возможностей меньше)

    из очевидных недостатков - просто так нельзя сделать консольное приложение (т.е. нужна форма с контролом WebBrowser, который играет роль интерфейса к ядру IE)

    ЛИбо, можно использовать HttpWebRequest/HttpWebResponse и либу HtmlAgilityPack - она позволяет несколько проще разбирать html'ки на объекты тэгов (плюс есть возможность юзать XPath)
    В этом случае форма не нужна, тк WebBrowser не используется
     
    1 person likes this.
  10. procedure

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

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    +1000 ))))
    Я об этом только вчера читал. А WebBrowser не знаю) В общем я читал, только как правильно обрабатывать отправляемые пакеты, или !Page.IsPostBack ))
    А как анализировать другую какую либо страницу, не было написано у меня в книге.... но думаю вскоре пойму..Нужно научиться хотяб авторизацию на каком нибудь сайте проходить)
     
  11. rudvil

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

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    Добрый день.
    У меня возникла загвоздка,а именно как на C# можно стереть все данные из картинки и записать туда свои,уточняю-нужно стереть все keywords из EXIF тега(его ID=0x9c9e) и записать туда свои которые например хранятся в массиве.
    Заранее большое спасибо.
     
  12. procedure

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

    Joined:
    22 Dec 2007
    Messages:
    527
    Likes Received:
    257
    Reputations:
    46
    Ну просматривать можно примерно так:
    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Drawing.Imaging;
    
    namespace Image
    {
        static class Program
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
    
                string filename = "";
    
                Bitmap img = new Bitmap(filename);
    
                foreach (PropertyItem imgItem in img.PropertyItems)
                    MessageBox.Show((Convert.ToString(img.Size)+ Convert.ToString(img.Tag)+
                        Convert.ToString(img.VerticalResolution)+ Convert.ToString(imgItem.Id)+
                        Convert.ToString(imgItem.Len)+ Convert.ToString(imgItem.Type)+
                        Convert.ToString(imgItem.Value)), "Свыше",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //И еще много чего)))
            }
    
        }
    }
    
    Существует еще класс ImageCodecInfo.
    А изменять EXIF можно так (код не мой):
    Code:
    private void WriteNewDescriptionInImage(string Filename,string NewDescription)
    {
    Image Pic;
    PropertyItem[] PropertyItems;
    byte[] bDescription=new Byte[NewDescription.Length];
    int i;
    string FilenameTemp;
    Encoder Enc=Encoder.Transformation;
    EncoderParameters EncParms=new EncoderParameters(1);
    EncoderParameter EncParm;
    ImageCodecInfo CodecInfo=GetEncoderInfo("image/jpeg");
    
    // copy description into byte array
    for (i=0;i<NewDescription.Length;i++) bDescription[i]=(byte)NewDescription[i];
    
    // load the image to change
    Pic=Image.FromFile(Filename);
    
    // put the new description into the right property item
    PropertyItems=Pic.PropertyItems; 
    PropertyItems[0].Id=0x010e; // 0x010e as specified in EXIF standard
    PropertyItems[0].Type=2;
    PropertyItems[0].Len=NewDescription.Length;
    PropertyItems[0].Value=bDescription;
    Pic.SetPropertyItem(PropertyItems[0]);
    
    // we cannot store in the same image, so use a temporary image instead
    FilenameTemp=Filename+".temp";
    
    // for lossless rewriting must rotate the image by 90 degrees!
    EncParm=new EncoderParameter(Enc,(long)EncoderValue.TransformRotate90);
    EncParms.Param[0]=EncParm;
    
    // now write the rotated image with new description
    Pic.Save(FilenameTemp,CodecInfo,EncParms);
    
    // for computers with low memory and large pictures: release memory now
    Pic.Dispose();
    Pic=null;
    GC.Collect();
    
    // delete the original file, will be replaced later
    System.IO.File.Delete(Filename); 
    
    // now must rotate back the written picture
    Pic=Image.FromFile(FilenameTemp);
    EncParm=new EncoderParameter(Enc,(long)EncoderValue.TransformRotate270);
    EncParms.Param[0]=EncParm;
    Pic.Save(Filename,CodecInfo,EncParms);
    
    // release memory now
    Pic.Dispose();
    Pic=null;
    GC.Collect();
    
    // delete the temporary picture
    System.IO.File.Delete(FilenameTemp); 
    }
    
    
     
  13. rudvil

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

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    Большое спасибо за потраченное время.
    За просмотр конечно спасибо,но он не так важен(да и в гугле полно исходников чего не скажешь про запись),постараюсь интегрировать этот код к себе,позже отпишусь что-да как.)
     
  14. rudvil

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

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    Возник вопрос,а именно GetEncoderInfo для его использования нужны какие-либо дополнительные библиотеки?(Я использую Visual C# 2008 express).
    В поиске он мне коечто выдал насчет этой функции,но ничего полезного.
     
  15. jawbreaker

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

    Joined:
    7 Jul 2008
    Messages:
    156
    Likes Received:
    76
    Reputations:
    3
    Цитата из MSDN:
    поэтому пишешь в своей проге using System.Text; и радуешься =)
     
  16. rudvil

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

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    если бы все так было просто =/
    Прописан у меня System.Text и всеравно пишет ошибку =/
     
  17. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    1. Framework какой?
    2. Мб переустановить фраемворки?
     
  18. rudvil

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

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    фреймворк 3 или 3.5 точно не знаю.
    З.Ы. сижу на висте.
     
  19. rudvil

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

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    Проблема с exifom решена-нашел на с++ хорошую прогу)
    Теперь возник другой вопрос,а именно.
    Сейчас приведу пример:у меня есть ArrayList и в нем содержится скажем 200 записей,большинство из них будут повторяться.
    Вот собственно и вопрос существуют ли в C# встроенные функции которые смогут:
    определить общее количество повторяющихся элементов,и в дальнейшем записать их и также их количество в двумерный массив:
    Code:
    массив[элемент][кол.повторений]
    З.Ы. в ручную написать смогу,просто интерестно есть ли такие встроенные функции в C#.
     
  20. Kaas

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

    Joined:
    13 Feb 2007
    Messages:
    31
    Likes Received:
    5
    Reputations:
    0
    нет, в core я такого не видел)
     
Loading...
Similar Threads - Java начинающим задаем
  1. b3
    Replies:
    4
    Views:
    3,044