Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2011, 08:56   #1
djKeysi
Пользователь
 
Регистрация: 08.08.2011
Сообщений: 18
Восклицание разбор строки

Помогите плз продолжить код, разбора строки:

Код:
void encodeStr(string str)
        {
            //m 1061.1665,374.02224 6.4094,0.44261 2.6443,-3.71543 -6.4413,-0.41724 z-- сама строка которую нуждно записать кодом((
            string[] strarray = str.Split(' ');
            foreach (string s in strarray)
            {
                if (s == "m")
                {
                    
                }
            }
Заранее спс!!!



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 08.08.2011 в 09:52.
djKeysi вне форума Ответить с цитированием
Старый 08.08.2011, 09:54   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

djKeysi
А Вам самому понятно, что Вы хотите получить в результате разбора строки?
А вот мне лично - не понятно... может объясните?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.08.2011, 10:02   #3
djKeysi
Пользователь
 
Регистрация: 08.08.2011
Сообщений: 18
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        private void Form1_Paint_1(object sender, PaintEventArgs e)
        {
            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

            e.Graphics.TranslateTransform(this.Size.Width / 2, this.Size.Height / 2);
           e.Graphics.ScaleTransform(3.0F, 1.0F);

            Pen myPen = new Pen(Color.Black, 0.3f);

        List<PointF> pointList2 = new List<PointF>();
            System.Drawing.Drawing2D.GraphicsState state  = e.Graphics.Save();
            e.Graphics.ResetTransform();
            e.Graphics.TranslateTransform(1061.1665f, 374.02224f);
            e.Graphics.ScaleTransform(3.0f, 3.0f);
            PointF lastPoint = new PointF(0, 0); 
            pointList2.Add(lastPoint);

           lastPoint.X += 6.4094f;
            lastPoint.Y += 0.44261f;
            pointList2.Add(lastPoint);
            lastPoint.X += 2.6443f;
            lastPoint.Y += -3.71543f;
            pointList2.Add(lastPoint);
            lastPoint.X += -6.4413f;
            lastPoint.Y += -0.41724f;//lastpoit.y=laspoint.y+(-0,41724)
            pointList2.Add(lastPoint);

            PointF[] points2 = pointList2.ToArray();
            System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
            path.AddLines(points2);
            path.CloseFigure();
            e.Graphics.DrawPath(myPen, path);
            e.Graphics.Restore(state);

        }
        void encodeStr(string str)
        {
            //m 1061.1665,374.02224 6.4094,0.44261 2.6443,-3.71543 -6.4413,-0.41724 z
            string[] strarray = str.Split( ' ');
            foreach (string s in strarray)
            {
                if (s == "m")
                {
                      
                }
            }


        }          

        private void Form1_Resize(object sender, EventArgs e)
        {
            this.Invalidate(true);
        }

  
    }
}
Есть вот такой программый код, рисуется на форме определенное изображение, и есть нескольео таких разных координат //m 1061.1665,374.02224 6.4094,0.44261 2.6443,-3.71543 -6.4413,-0.41724 z, ну так вот чтобы невносить каждую координату поотдельности нужно разобрать строку
djKeysi вне форума Ответить с цитированием
Старый 08.08.2011, 10:37   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
            string s = "1061.1665,374.02224 6.4094,0.44261 2.6443,-3.71543 -6.4413,-0.41724";
            foreach (string a in s.Split(' ')) {
                Console.WriteLine(a);
            }
Сойдеть такое расщепление?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.08.2011, 10:45   #5
djKeysi
Пользователь
 
Регистрация: 08.08.2011
Сообщений: 18
По умолчанию

несовсем, как сделать чтоб вывод был ненакосоль а на форму? Я полный нуб в C#
Код:
//m 1061.1665,374.02224 6.4094,0.44261 2.6443,-3.71543 -6.4413,-0.41724 z
void encodeStr(string str)
        {
            string[] strarray = str.Split( ' ');
            foreach (string s in strarray)
            {
                if (s == "m")
                {
                      
                }
            }
Да и мне написали вот этот код сначало прально, а продолжить немогу его(

Последний раз редактировалось djKeysi; 08.08.2011 в 10:50.
djKeysi вне форума Ответить с цитированием
Старый 08.08.2011, 13:20   #6
djKeysi
Пользователь
 
Регистрация: 08.08.2011
Сообщений: 18
По умолчанию

Код:
string[] strarray = str.Split(' ');
string[] temp;
float flt = float.Parse(temp);
PointF lastPoint = new PointF(0, 0); 
List<PointF> pointList2 = new List<PointF>();
foreach (string s in strarray)
{
  if(s == "m" || s == "z")
  {
   continue;
  }
  temp = s.Split(',');
  lastPoint.X = temp[0];
  lastPoint.Y = temp[1];
  pointList2.Add(lastPoint);
}
return pointList2;
}
подскажите плз как данный пример конвертировать string во float
djKeysi вне форума Ответить с цитированием
Старый 08.08.2011, 14:00   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

посмотрите, может Вы такое пытаетесь соорудить?

Код:
        private void GetGraphicsFromStr(string str, List<PointF> pointList2, out float x0, out float y0)
        {
            x0 = 0f; y0 = 0f;
            if ((str.IndexOf("m") >= 0) && str.IndexOf("z") > str.IndexOf("m"))
            {
                str = str.Substring(str.IndexOf("m") + 1, str.IndexOf("z") - str.IndexOf("m") - 1).Trim();
                while (str.IndexOf("  ") >= 0) str = str.Replace("  ", " ");
                str = str.Replace(" ", ",");
                int i = 0;
                textBox1.Text = "";
                x0 = 0f; y0 = 0f;
                pointList2.Clear();
                PointF lastPoint = new PointF(0, 0);
                pointList2.Add(lastPoint);
                foreach (string s in str.Split(','))
                {
                    switch (i)
                    {
                        case 0: x0 = Convert.ToSingle(s);
                            break;
                        case 1: y0 = Convert.ToSingle(s);
                            break;
                        default:
                            if (i % 2 == 0)
                            {
                                lastPoint.X += Convert.ToSingle(s);
                            }
                            else
                            {
                                lastPoint.Y += Convert.ToSingle(s);
                                pointList2.Add(lastPoint);
                            }
                            break;
                    }
                    i++;
                }
            }
        }

        private void Form1_Paint_1(object sender, PaintEventArgs e)
        {
            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

            e.Graphics.TranslateTransform(this.Size.Width / 2, this.Size.Height / 2);
            e.Graphics.ScaleTransform(3.0F, 1.0F);

            Pen myPen = new Pen(Color.Black, 0.3f);

            List<PointF> pointList2 = new List<PointF>();
            System.Drawing.Drawing2D.GraphicsState state = e.Graphics.Save();
            e.Graphics.ResetTransform();

            float x0, y0;
            GetGraphicsFromStr("m 1061.1665,374.02224 6.4094,0.44261 2.6443,-3.71543 -6.4413,-0.41724 z",
                                pointList2, out x0, out y0);

            e.Graphics.TranslateTransform(x0, y0);
            e.Graphics.ScaleTransform(10.0f, 10.0f);


            PointF[] points2 = pointList2.ToArray();
            System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
            path.AddLines(points2);
            path.CloseFigure();
            e.Graphics.DrawPath(myPen, path);
            e.Graphics.Restore(state);
        }
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.08.2011, 08:32   #8
djKeysi
Пользователь
 
Регистрация: 08.08.2011
Сообщений: 18
По умолчанию

угу ток как в твоей программе добалять несколько координат еше?(
djKeysi вне форума Ответить с цитированием
Старый 09.08.2011, 08:49   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
угу ток как в твоей программе добалять несколько координат еше?(
шутим?!

тут добавляйте (только парами чисел):
Цитата:
Код:
         GetGraphicsFromStr("m 1061.1665,374.02224 6.4094,0.44261 2.6443,-3.71543 -6.4413,-0.41724 z",
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.08.2011, 11:30   #10
djKeysi
Пользователь
 
Регистрация: 08.08.2011
Сообщений: 18
По умолчанию

так я добавляю вот к примеру так:

Код:
GetGraphicsFromStr("m 1061.1665,374.02224 6.4094,0.44261 2.6443,-3.71543 -6.4413,-0.41724 z m 67.402531,400.02224 z", 
                                pointList2, out x0, out y0);
Ничего нересуется(

Последний раз редактировалось djKeysi; 09.08.2011 в 11:33.
djKeysi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разбор строки D_e_n_n Помощь студентам 2 03.03.2011 15:22
Разбор строки DenisVoronov Помощь студентам 11 18.11.2010 11:18
Разбор строки... CodeExpert Помощь студентам 3 23.02.2010 18:16
разбор строки на части Wi1D Общие вопросы C/C++ 7 27.12.2009 23:31
Разбор строки GPS TIT0 Общие вопросы C/C++ 1 08.03.2009 18:44