前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >X# 点滴(五):如何创建控制台应用程序(2)

X# 点滴(五):如何创建控制台应用程序(2)

作者头像
firstxinjie
发布2024-12-06 14:00:14
发布2024-12-06 14:00:14
4300
代码可运行
举报
文章被收录于专栏:X#(XSharp)X#(XSharp)
运行总次数:0
代码可运行

将所看到的唯一 prg 文件重命名为 Main.prg。因为在对 X# 完全陌生的状态下,潜意识里就认为它应该是所谓的项目主文件。然后将其内容更改如下(当你真正或虚假的理解了所生成的代码之后):

代码语言:javascript
代码运行次数:0
复制
USING System
USING System.Collections.Generic
USING System.Linq
USING System.Text
Using Static System.Console


Function Start() As Void Strict
    Private lcReturn As String

    SqlSetProp(0, [DispLogin], 3)

    PutHeader()

    Do While .t.
        PutMenu()

        ? [请键入菜单序号:]
        lcReturn = ReadLine()

        Do Case
            Case lcReturn = [1]
                Register()

            Case lcReturn = [2]
                Nop

            Case lcReturn = [3]
                Nop

            Case lcReturn = [4]
                Nop

            Case lcReturn = [5]
                Nop

            Case lcReturn = [6]
                Nop

            Case lcReturn = [7]
                Nop

            Case lcReturn = [8]
                Nop

            Case lcReturn = [9]
    Exit

            Otherwise
                ? [菜单选择错误,返回主菜单]
        Endcase
    Enddo

    Return

Function PutHeader
    Private lcHeader = [] As String

    Text To lcHeader Noshow Pretext 1
          __  __                   _               _     _                       _____                   _   _
         |  \/  |   __ _   _ __   | |__     __ _  | |_  | |_    __ _   _ __     |_   _|   ___     ___   | | | |__     ___   __  __
         | |\/| |  / _` | | '_ \  | '_ \   / _` | | __| | __|  / _` | | '_ \      | |    / _ \   / _ \  | | | '_ \   / _ \  \ \/ /
         | |  | | | (_| | | | | | | | | | | (_| | | |_  | |_  | (_| | | | | |     | |   | (_) | | (_) | | | | |_) | | (_) |  >  <
         |_|  |_|  \__,_| |_| |_| |_| |_|  \__,_|  \__|  \__|  \__,_| |_| |_|     |_|    \___/   \___/  |_| |_.__/   \___/  /_/\_\
  Endtext

    ? lcHeader
    ?
    ? [******************************************************]
    ? [作者: xinjie(QQ 411618689)]
    ? [Github: https://github.com/vfp9]
    ? [TQ开发框架(Manhattan)工具箱 Ver:1.0.0]
    ? [******************************************************]
    ?
    Return

Function PutMenu
    ? "[1] > 注册客户端(框架/应用程序)"
    ? "[2] > 待定"
    ? "[3] > 待定"
    ? "[4] > 待定"
    ? "[5] > 待定"
    ? "[6] > 待定"
    ? "[7] > 待定"
    ? "[8] > 待定"
    ? "[9] > 退出"
    ?

    Return

Function Register
    Public lnStatementHandle    As Int
    Private lcReturn            As String , ;
            lcDatabase          As String , ;
            lcIP                As String , ;
            lcPort              As String , ;
            lcUser              As String , ;
            lcPassWord          As String , ;
            lcStringConnect     As String

    ? [请输入数据库类型(1 SQL Server; 3 MySQL):]
    lcReturn = ReadLine()

    Do Case
        Case lcReturn = [1]
            ? [指定需要连接的数据库名:]
            lcDatabase = ReadLine()
            ? [IP地址:]
            lcIP       = ReadLine()
            ? [端口:]
            lcPort     = ReadLine()
            ? [用户名:]
            lcUser     = ReadLine()
            ? [密码:]
            lcPassWord = ReadLine()

            Text To lcStringConnect Noshow Textmerge Pretext 1
                Driver={SQL Server};
                UID = <<lcUser>> ;
                PWD = <<lcPassWord>>;
                Server = <<lcIP>>,<<lcPort>>;
                Database = <<lcDatabase>>
            Endtext

            lnStatementHandle = Sqlstringconnect(lcStringConnect, .t.)

            If lnStatementHandle > 0
                ? [连接成功,返回主菜单]

            Else
                ? [连接失败,返回主菜单]
            Endif


        Case lcReturn = [3]
            ? [未完成...返回主菜单]
    Endcase

    Return

这段代码的原型就是我在《使用 VFP 创建控制台应用程序的一些思考》提到的 MagicMenu 的另一个控制台应用程序的“Demo”

按序号计算,一百多行的程序,完全不明白意思的不会超过十行。

而且,请注意,代码风格是自己在 VFP 中书写代码的风格,除了在变量前省略了“m.”前缀。

这是一段值得好好琢磨琢磨的代码,对第一次接触 X# 的 VFP 程序员来说。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 xinjie的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档