copy函数和delete 函数和用就解决问题

解决方案 »

  1.   

    主  题:我的问题!请大个帮个忙!小妹照片随后奉送!
    作  者:maipu
    所属论坛:Delphi
    问题点数:20
    回复次数:11
    发表时间:2001-11-22 21:13:33
     
      
          各位大哥:
            我现在有一个文本文件他的格式如下:
            ^kkkkk^bbbbb^cccc^ddddd^eeeee^
            ^qqqqq^ddddd^sssss^pppppp^llll^
      如何让他通过程序变为下面的格式
            9999999bbbbb      eeeee  0  0    88
            9999999ddddd      lllll  0  0    99 
    http://www.csdn.net/expert/topic/383/383913.shtm
      

  2.   

    maipu~~你的那些问题都是替换一些文本~~
    大家都不知道你的这种字符的替换是否有规律或者说是规则是什么~~
    如果没有的话~~阿水的方法就可以了~~1.读取出来~~
    2.字符替换~~
    3.存入文本~~
      

  3.   

    MAIPU,论坛一般都是帮助你解决不了的问题,你自己试过作你这个问题了吗?自己试试,很容易的东西应该自己作
      

  4.   

    //又对不起各位先
    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        Memo2: TMemo;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}const
      cText =
    '^张三 电费 58.99 三月'#13#10 +
    '^李四 电费 88.76 三月'#13#10 +
    '^王首微 电费 108.77 三月'#13#10;type
      TUnitInfo = record //单位信息
        rUnitCode: string; //单位帐号 e.g. 858423
        rUnitMen: string; //单位职员 e.g. 张三,李四,王首微
      end;  TChargeInfo = record //费用信息
        rChargeCode: string; //费用代码 e.g. 1
        rChargeName: string; //费用名称 e.g. 电费
      end;const
      cUnitInfoCount = 1;
      cUnitInfoList: array[0..cUnitInfoCount - 1] of  TUnitInfo =
    (
    (rUnitCode: '858423'; rUnitMen: '张三,李四,王首微')
    );const
      cChargeInfoCount = 1;
      cChargeInfoList: array[0..cChargeInfoCount - 1] of TChargeInfo =
    (
    (rChargeCode: '1'; rChargeName: '电费')
    );const
      cMonthCn: array [1..12] of string =
    ('一月', '二月', '三月', '四月', '五月', '六月',
     '七月', '八月', '九月', '十月', '十一月', '十二月');function FindUnit(rUnitMan: string): string;
    var
      I: Integer;
    begin
      Result := '';
      for I := 0 to cChargeInfoCount - 1 do
        if Pos(rUnitMan, cUnitInfoList[I].rUnitMen) > 0 then begin
          Result := cUnitInfoList[I].rUnitCode;
          Break;
        end;
    end; { FindUnit }function FindCharge(mChargeName: string): string;
    var
      I: Integer;
    begin
      Result := '';
      for I := 0 to cChargeInfoCount - 1 do
        if mChargeName = cChargeInfoList[I].rChargeName then begin
          Result := cChargeInfoList[I].rChargeCode;
          Break;
        end;
    end; { FindCharge }function FindMonth(mMonthCn: string): string;
    var
      I: Integer;
    begin
      Result := '';
      for I := 1 to 12 do
        if mMonthCn = cMonthCn[I] then begin
          Result := IntToStr(I);
          Break;
        end;
    end; { FindMonth }procedure TForm1.FormCreate(Sender: TObject);
    begin
      Memo1.Text := cText;
    //  Memo1.Lines.LoadFromFile('aa.txt');
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      I, J, T: Integer;
      S, C: string;
      vMoney, vMonth, vCharge, vUnit: string;
    begin
      Memo2.Lines.Clear;
      for I := 0 to Memo1.Lines.Count - 1 do begin
        S := Memo1.Lines[I] + ' ';
        T := 0;
        C := '';
        for J := 1 to Length(S) do begin
          if S[J] = ' ' then begin
            Inc(T);
            case T of
              1: vUnit := FindUnit(Copy(C, 2, MaxInt));
              2: vCharge := FindCharge(C);
              3: vMoney := StringReplace(C, '.', '', [rfReplaceAll]);
              4: vMonth := FindMonth(C);
            end;
            C := '';
          end else C := C + S[J];
        end;
        Memo2.Lines.Add(vUnit + ' ' + vMoney + ' ' + vMonth + ' ' + vCharge);
      end;
    //  Memo2.Lines.SaveToFile('bb.txt');
    end;end.
      

  5.   

    照片!照片!照片!照片!照片!照片!照片!照片!照片!照片!
    [email protected]
      

  6.   

    //修改示范
    const
      cUnitInfoCount = 2;
      cUnitInfoList: array[0..cUnitInfoCount - 1] of  TUnitInfo =
    (
    (rUnitCode: '858423'; rUnitMen: '张三,李四,王首微'),
    (rUnitCode: 'CSDN'; rUnitMen: 'zswang,tikkypeng,maipu,byrybye')
    );const
      cChargeInfoCount = 2;
      cChargeInfoList: array[0..cChargeInfoCount - 1] of TChargeInfo =
    (
    (rChargeCode: '1'; rChargeName: '电费'),
    (rChargeCode: '2'; rChargeName: '网费')
    );
      

  7.   

    zswang(伴水)(伤心中)~~老大~~~够狠~~哈哈~~:)
      

  8.   

    zswang(伴水)(伤心中):好神速啊!答者之意不在分啊!
      

  9.   

    to cobi(我是小新,我只有5岁):
      照片!照片!照片!照片!照片!照片!照片!照片!照片!照片!
      照片!照片!照片!照片!照片!照片!照片!照片!照片!照片!
      照片!照片!照片!照片!照片!照片!照片!照片!照片!照片!
      

  10.   

    定义变量
    sourceFile,DestFile:TextFile;
     myStr:String;
     spaceLoc:integer;
     resultStr:String;
     headStr:String;
     lineOver:Boolean;在某按钮的事件中写以下代码
    if OpenDialog1.Execute  and  SaveDialog1.Execute
      then begin    AssignFile(sourceFile,OpenDialog1.FileName);
        Reset(sourceFile);
        AssignFile(DestFile,SaveDialog1.FileName);
        ReWrite(DestFile);   while not Eof(sourceFile) do
             begin  //读文件
              readln(sourceFile,myStr);
              lineOver:=False;
              resultStr:='';          myStr:=trim(myStr);        
              if not myStr=''
                  then begin                resultStr:='';
                    spaceLoc:=0;
                    for i:=1 to StrLen(PChar(myStr))
                      do begin   //找到“电费”的位置
                         if myStr[i]=' '    //一个空格
                          then begin
                            spaceLoc:=i;
                            delete(myStr,1,i);
                            myStr=trim(myStr);
                            break;
                          end;
                      end;
                    
                    if not myStr=''
                       then begin
                         headStr:=myStr;
                         StrLen(PChar(headStr))>4 then begin
                            delete(headStr,5,StrLen(PChar(headStr))-4); //只留前四字符
                            if headStr='电费' 
                               then begin
                               end
                               else lineOver:=True;  //不含“电费”字样 
                                  
                         end
                         else lineOver:=True;
                  
                         if  lineOver then break;    //读下一行数据 转到while
                       end;                 delete(myStr,1,4);   //删去“电费”
                     trim(myStr);
                     
                     if not  myStr='' 
                        then  begin
                           spaceLoc:=0;
                           for i:=1 to StrLen(PChar(myStr))
                             begin
                               spaceLoc:=0;
                               if myStr[i]=' '  //空格
                                then begin
                                  spaceLoc:=i;
                                  
                                  break;
                                end;
                             end;                        if spaceLoc=0 then break  //找不到正确位置,读下一行数据
                            else  begin
                              headStr:=myStr;
                              delete(headStr,spaceLoc,StrLen(PChar(myStr))-spaceLoc+1)  //去掉后面只留数字
                              resultStr:=' '+IntToStr(trunc(StrToFloat(headStr)*100));
                            end;
                            
                            //在有存款记录的情况下,继续
                            delete(myStr,1,spaceLoc);
                            trim(myStr);
                            if (myStr='三月')
                               then begin 
                                 resultStr:='858423'+' '+resultStr+' 3  1';
                                 writeln(DestFile,resultStr);  
                                      //满足以上所有条件,才终于可以写记录。
                               end;   
                              
                        end;              end;
             end;    //while not Eof
             
            CloseFile(DestFile);
            CloseFile(sourceFile);
      end;
      

  11.   

    to tikkypeng(一两狂死郎之天衣有缝):
      师弟,你也中招啦!怎么?难道你跟他有一,.,.,.,.,.,,.腿.,.,.,.,.,.,.,
      

  12.   

    to:zswang(伴水)(伤心中) 
    俺有观音姐姐的相片要不?
      

  13.   

    to:zswang(伴水)(伤心中) 
    俺有观音姐姐的相片要不?
      

  14.   

    zswang(伴水)(伤心中)~~下面的是怎么做出来的呢??
    伤伤伤伤伤■■■伤■■■伤伤伤伤伤伤伤伤  心心心心心心心心心心心心心心心心心心心心
    伤伤伤伤■■■伤伤■■■伤伤伤伤伤伤伤伤  心心心心心心心心心■■■心心心心心心心心
    伤伤■■■■伤伤■■■■■■■■■■■■  心心心心心心心心心■■■心■■■心心心心
    ■■■■■■伤■■■伤伤■■伤伤伤■■伤  心心■■心心心心■■■心心■■■■心心心
    ■■■■■■■■■伤伤伤■■伤伤伤伤伤伤  心心■■■■■心■■■心心■■■心心心心
    伤伤伤■■■伤伤■■■■■■■■■■■伤  心■■■■■■■■■心心■■■心心心心心
    伤伤伤■■■伤伤伤伤伤■■■伤伤■■■伤  心■■■心■■■■心心■■■心心心心心心
    伤伤伤■■■伤伤伤伤伤■■伤伤伤■■■伤  ■■■■心心心■■■■■■心心心心心心心
    伤伤伤■■■伤伤伤伤■■■伤伤■■■伤伤  ■■■心心心心心■■■■■■心心心心心心
    伤伤伤■■■伤伤伤■■■伤伤伤■■■伤伤  ■■■心心心心心心心■■■■■■■■■■
    伤伤伤■■■■■■■■伤伤伤■■■伤伤伤  ■■心心心心心心心心心■■■■■■■■■
    伤伤■■■■■■■伤■■■■■■■伤伤伤  心心心心心心心心心心心心心■■■■■■心
    伤伤伤■■伤伤伤伤伤伤伤■■■■伤伤伤伤  心心心心心心心心心心心心心心心■■心心心
      

  15.   

    function CanvasToGBText(mCanvas: TCanvas; mRect: TRect;
      mBackColor: TColor = clWhite): string; { 文本花式 }
    var
      I, J: Integer;
      S: string;
    begin
      Result := '';
      for J := mRect.Top to mRect.Bottom do begin
        S := '';
        for I := mRect.Left to mRect.Right do
          Result := Result + Iif(mCanvas.Pixels[I, J] = mBackColor, '□', '■'));
        Result := Result + S + #13#10;
      end;
    end; { CanvasToGBText }
      

  16.   

    用画笔写个字先
    用TImage载入中
    用处理到文本次
    IDE 替换排版后